Home

Rabbit ® 6000 Microprocessor User`s Manual

image

Contents

1. Register Name Mnemonic Address R W Reset Serial Port A Data Register SADR 0 00 0 Serial Port A Address Register SAAR 0 00 1 w XXXXXXXX Serial Port A Long Stop Register SALR 0x00C2 w XXXXXXXX Serial Port A Status Register SASR 0x00C3 R 0xx00000 Serial Port A Control Register SACR 0x00C4 R W xx000000 Serial Port A Extended Register SAER 0x00C5 R W 00000000 Serial Port A Divider Low Register SADLR 0x00C6 R W xXXXXXXX Serial Port A Divider High Register SADHR 0x00C7 Serial Port B Data Register SBDR 0x00DO xxxxxxxx Serial Port B Address Register SBAR 0 0001 w XXXXXXXX Serial Port B Long Stop Register SBLR 0x00D2 w XXXXXXXX Serial Port B Status Register SBSR 0x00D3 R 0xx00000 Serial Port B Control Register SBCR 0x00D4 R W xx000000 Serial Port B Extended Register SBER 0x00D5 R W 00000000 Serial Port B Divider Low Register SBDLR 0x00D6 Serial Port Divider High Register SBDHR 0x00D7 Oxxxxxxx Serial Port Data Register SCDR 0 00 0 Serial Port Address Register SCAR 0 00 1 XXXXXXXX Serial Port C Long Stop Register SCLR 0 00 2 w XXXXXXXX Serial Port C Status Register SCSR 0x00E3 R 0xx00000 Serial Port C Control Register SCCR 0 00 4 xx000000 Serial Port Extended Register SCER 0 00 5 00000000
2. Network Port B Configuration 2 Register NBCF2R Address 0x0242 Bit s Value Description 7 5 0 Disable transmit pad operation Check CRC if not appended 001 Pad transmit frames to 60 bytes append CRC 11 Pad transmit frames to 64 bytes append CRC 101 Pad transmit frames to 60 bytes not VLAN tagged or 64 bytes VLAN tagged append CRC 4 0 Disable transmit CRC insertion 1 Enable transmit CRC insertion Must be set if bit 5 is set 3 0 Normal 802 3 frame structure 1 Enable 4 byte header ignored by CRC 2 0 Normal 802 3 frame length restrictions 1 Enable huge frames transmit and receive 1 0 Disable frame length checking 1 Enable frame length checking transmit and receive 0 0 Enable half duplex 1 Enable full duplex Network Port B Configuration 3 Register Address 0x0243 Bit s Value Description T This bit is ignored and will always return zero when read 6 0 Abort transmit on excessive deferral 1 Defer to carrier indefinitely 5 0 Normal transmit operation after back pressure collision 1 Enable immediate transmission after back pressure collision 4 0 Normal 802 3 back off operation 1 Enable immediate retransmit no back off 3 2 These bits are ignored and will always return zeros when read 1 0 Disable preamble length limit checking 1 Enable preamble length limit checking 12 bytes or less only 0 0 Disable preamble checki
3. FIMA Data FIFO Register FADFR Address 0x6000 Bit s Value Description 7 0 write Loads the transmit FIFO buffer read Returns the contents of the receive FIFO buffer FIMA Rx Status FIFO Register FARSFR Address 0x6001 Bit s Value Description 7 This bit is reserved and always returns zero 6 0 read Returns the contents of the receive status FIFO buffer FIMA FIFO Status Register FAFSR Address 0x6002 Bit s Value Description 7 4 These bits are reserved and always returns zeros 3 0 Rx FIFO not full Sud 1 Rx FIFO full only 2 0 Rx FIFO not empty Read only 1 Rx FIFO empty 1 0 Tx FIFO not full ud 1 Tx FIFO full only 0 0 Tx FIFO not empty Read only 1 Tx FIFO empty Rabbit 6000 User s Manual digi com 374 FIMA Outbound Interrupt Register FAOIR Address 0x6003 Bit s Value Description 7 0 The Interrupt code to the Flexible Interface Module processor has been cleared by the FIM Read only 1 Flexible Interface Module processor interrupt acknowledge Interrupt value from the Flexible Interface Module processor The Flexible Interface Module processor writes a non zero value which 6 0 read _ causes an interrupt request 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
4. Register Name Mnemonic Address R W Reset DMA Master Control Status LSB Register DMCSLR 0x0100 R W 00000000 DMA Master Control Status MSB DMCSMR 0 0101 R W 00000000 Register DMA Master Auto load LSB Register DMALLR 0 0110 W 00000000 DMA Master Auto load MSB Register DMALMR 0 0111 W 00000000 DMA Master Halt LSB Register DMHLR 0x0120 W 00000000 DMA Master Halt MSB Register DMHMR 0 0121 W 00000000 DMA y Buffer Complete Register DyBCR 0x0103 00000000 DMA Master Control Register DMCR 0x0104 R W 00000000 DMA Master Timing Control Register DMTCR 0x0105 R W 00000000 DMA Master Request 0 Control Register DMROCR 0x0106 R W 00000000 DMA Master Request 1 Control Register DMRICR 0 0107 00000000 DMA Timed Request Control Register DTRCR 0 0115 R W 00000000 Em Reduces Divider DON DTRDLR 0x0116 s a sa DTRDHR 0x0117 Cone DCSTCR 0 0125 xx000000 DMA y Termination Byte Register DyTBR 0x0108 DMA y Termination Mask Register DyTMR 0 0109 R W 00000000 DMA y Buffer Unused 7 0 Register DyBUOR 0 010 R 00000000 DMA y Buffer Unused 15 8 Register DyBUIR 0x010B R 00000000 DMA y Initial Address 7 0 Register DyIAOR 0x010C DMA y Initial Address 15 8 Register DyIAIR 0x010D DMA y Initial Address
5. Parallel Port F Alternate High Register PFAHR Address 0x003B Bit s Value Description 7 6 00 Parallel Port F bit 7 alternate output 0 FIMA7 01 Parallel Port F bit 7 alternate output 1 17 10 Parallel Port F bit 7 alternate output 2 PWM3 11 Parallel Port F bit 7 alternate output 3 SCLKC 5 4 00 Parallel Port F bit 6 alternate output 0 FIMA6 01 Parallel Port F bit 6 alternate output 1 16 10 Parallel Port F bit 6 alternate output 2 PWM2 11 Parallel Port F bit 6 alternate output 3 TXE 3 2 00 Parallel Port F bit 5 alternate output 0 FIMA5 01 Parallel Port F bit 5 alternate output 1 15 10 Parallel Port F bit 5 alternate output 2 PWM1 11 Parallel Port F bit 5 alternate output 3 RCLKE 1 0 00 Parallel Port F bit 4 alternate output 0 FIMA4 01 Parallel Port F bit 4 alternate output 1 14 10 Parallel Port F bit 4 alternate output 2 11 Parallel Port F bit 4 alternate output 3 TCLKE Parallel Port F Control Register PFCR Address 0x003C Bit s Value Description 7 6 These bits are ignored and should be written with zero 5 4 00 The upper nibble peripheral clock is perclk 2 01 The upper nibble peripheral clock is the output of Timer 1 10 The upper nibble peripheral clock is the output of Timer B1 11 The upper nibble peripheral clock is the output of Timer B2 3 2 These bits are ignored and should be written with zero 1 0 00 The lower
6. Parallel Port F Data Register PFDR Address 0x0038 Bit s Value Description 7 0 Read The current state of Parallel Port F pins PF7 PFO is reported The Parallel Port F buffer is written with this value for transfer to the Write Parallel Port F output register on the next rising edge of the port transfer clock The port transfer clock is established by PFCR Parallel Port F Alternate Low Register PFALR Address 0x003A Bit s Value Description 7 6 00 Parallel Port F bit 3 alternate output 0 FIMA3 01 Parallel Port F bit 3 alternate output 1 13 10 Parallel Port F bit 3 alternate output 2 TIMER C3 11 Parallel Port F bit 3 alternate output 3 SCLKD 5 4 00 Parallel Port F bit 2 alternate output 0 FIMA2 01 Parallel Port F bit 2 alternate output 1 12 10 Parallel Port F bit 2 alternate output 2 TIMER C2 11 Parallel Port F bit 2 alternate output 3 TXF 3 2 00 Parallel Port F bit 1 alternate output 0 FIMA1 01 Parallel Port F bit 1 alternate output 1 I1 10 Parallel Port F bit 1 alternate output 2 TIMER C1 11 Parallel Port F bit 1 alternate output 3 RCLKF 1 0 00 Parallel Port F bit O alternate output 0 FIMAO 01 Parallel Port F bit O alternate output 1 IO 10 Parallel Port F bit 0 alternate output 2 TIMER CO 11 Parallel Port F bit 0 alternate output 3 TCLKF Rabbit 6000 User s Manual digi com 141
7. Symbol Parameter ND m Tsu SCS SCS Setup Time 5 Th SCS SCS Hold Time 0 Tsu SA SA Setup Time 5 Th SA SA Hold Time 0 Tw SRD SRD Low Pulse Width 40 Ten SRD SRD to SD Enable Time 0 Ta SRD SRD to SD Access Time 30 Tdis SRD SRD to SD Disable Time 15 Tsu SRW SWR High to SRD Low Setup 40 2 SRD Time Tw SWR SWR Low Pulse Width 40 Tsu SD SD Setup Time 10 Th SD SD Hold Time 5 Tsu SRD SRD High to SWR Low Setup 40 2 SWR Time Rabbit 6000 User s Manual digi com 223 Figure 21 2 shows the sequence of events when the master reads writes the slave port registers Slave Port Read Cycle ises A le Isuscs Tics SA1 SA0 Hex Tsu SA gest Th SA 4p E 9 1 Tw SRD Ten SRD 1 I dis SRD I Ta SRD SWR i j 9 Tsu SWR SRD Slave Port Write Cycle u SCS T9 865 SA1 SA0 dey Tsu SA pe Th SA sw 07 Tw SWR 5017 0 h 2 pum SRD 1 91 Ts u SRD SWR Figure 21 2 Slave Port R W Timing Diagram Rabbit 6000 User s Manual digi com 224 21 4 Register Descriptions Slave Port Data x Registers SPDOR Address 0x0020 SPD1R Address 0x0021 SPD2R Address 0x0022 Bit s
8. 27 USB Host 27 1 Overview eee eines 27 1 1 Block Diagram 27 1 2 Registers 27 2 Dependencies ZI DA Ping 27 2 2 CIOCKS eerte tet 27 2 3 Other Registers 27 2 4 Interrupts 241 3 Opetr tion eene 27 3 1 32 bit Interface 21 3 2 Setup 27 3 3 Transmit and Receive 27 3 4 Handling Interrupts 27 4 Register Descriptions 28 Input Capture 28 1 Overview 28 1 1 Block Diagram 28 1 2 Registers 28 2 Dependencies 28 2 1 VO Pins een 28 2 2 Clocks 5 eee 28 2 3 Other Registers 28 2 4 Interrupts sss 28 3 2 242222 21 28 3 1 Input Capture Channel 28 3 2 Handling Interrupts 28 3 3 Example ISR 28 3 4 Capture Mode 28 3 5 Count Mode 28 4 Register Descriptions 29 Quadrature Decoder 20 1 OVERVIEW ine trie eere 29 1 1 Block Diagram 29 1 2 Registers essere 29 2 Dependencies eene 2921 JO Pins
9. 203 20 2 3 Other Registers 203 20 2 4 Interrupts 2 2 244442221 204 20 3 22 4 0 205 20 3 1 Asynchronous Mode 205 20 3 2 HDLC Mode 205 20 3 3 More on Clock Synchronization and Data Encoding 22 2222 206 20 4 Register Descriptions 210 21 Slave Port 21 1 Overview eee eene 216 21 1 1 Block Diagram 217 21 1 2 Registers cnet 217 21 2 Dependencies esses 218 21 2 1 VO Pins 218 21 2 2 Clocks iere eerie 218 21 2 3 Int rr pts eee 218 21 3 Operation eterne 219 21 3 1 Master Setup 220 21 3 2 Slave Setup 220 21 3 3 Master Slave Communication 221 21 3 4 Slave Master Communication 221 21 3 5 Handling Interrupts 221 21 3 6 Example ISR 221 21 3 7 Other Configurations 222 21 3 8 Timing Diagrams 223 21 4 Register Descriptions 225 22 Wi Fi Analog Components 22 1 OV tVIEW nee ne tee tere 227 22 2 Block Diagram esee 230 22 2 1 Registers eset 231 22 3 Dependencies eene tene
10. 193 Serial Port x Control Register 196 Serial Port x Data Register 193 Serial Port x Divider High Register 199 Serial Port x Divider Low Register 198 Serial Port x Extended Register asynch mode 197 Serial Port x Extended Register clocked serial MOG dee eet sepe 198 Serial Port x Long Stop Register 193 Serial Port x Status Register asynch mode 194 Serial Port x Status Register clocked serial MOG coe reste SEN 195 Serial Ports Bom FE csouesseue seme 202 Serial Port x Address Register 210 Serial Port x Control Register 213 Serial Port x Data Register 210 Serial Port x Divider High Register 215 Serial Port x Divider Low Register 215 Serial Port x Extended Register asynch mode 214 Serial Port x Extended Register HDLC mode 215 Serial Port x Long Stop Register 210 Serial Port x Status Register asynch mode 211 Parallel Port G Control Register 151 Serial Port x Status Register HDLC mode 212 Parallel Port G Data Direction Register 151 Slave 217 Parallel Port G Data Register 149 Slave Port Control Register 226 Parallel Port Drive Contr
11. 177 vie ese 429 us an 179 power and current consumption 427 dependencies netten 179 battery backed clock 428 DMA control esee 176 sleep modes eno reete a vase eas 427 cereais 179 180 spectrum spreader sse 16 22 example ISR eerte 180 Stack protection i n 67 operation system management 2 42 overview block 43 register descriptions 181 cede aia 45 IGg1StefS d os DU neh oii 178 dependencies reir 45 timing diagrams interrupts uawan enee kusasqa B 45 VO R W cycles 423 onchip encryption RAM 42 memory R W cycles aaa a 420 operation memory R W cycles early output enable and write CPU clock cycle counter 47 enable 421 periodic interrupt 46 slave port R W cycles 223 224 real time clock eese 46 watchdog timer 47 U other Teglsters 1 eese rater erento aas 42 USB host register 42 block diagram 317 GOCR register J 4 2242 42 E
12. 106 alternate input functions seen 107 N alternate output functions 106 Network Port B block diagram eene 107 block 287 clocks 108 285 dependencies 108 290 operation 109 290 daa M 106 DMA transfers 5 esent 286 PCDR setup 106 interrupts essent 291 293 GB UII erence enemies u ua as u ae 291 88 descriptions 110 multicast addressing 294 16 8 MT S Sus 108 ES 292 Parallel Port D ee DM 119 rut ec 292 alternate input functions ss ss EM IUE 114 OVELVICW X 285 alternate output functions 115 ua wa eile wees 285 block diagram 115 register descriptions 295 clocks w 117 TegISfefS CN 288 dep endencies 4 4 4 117 waaka aska hisa kun arku 291 US GEH 2 E 117 tr
13. 34 2 1 VO PINS ttem 34 22 CIOCES see 34 2 3 Other Registers 34 3 220 3431 ECC Leere tes 34 3 2 CRC 34 4 Register Descriptions 35 I2C Peripheral Serial Port G 35 1 35 1 1 Block Diagram 33 1 2 Registers 35 2 Dependencies 35 2 L TO PINS 33 2 2 CIOCKS Listener 35 2 3 Other Registers 35 24 Interrupts 32 3 Operation uuu ettet ie 35 3 1 32 bit Interface 35 32 Interr pts 35 3 3 Master Mode Data Write 35 3 4 Master Mode Data Read 35 3 5 Slave Mode Data Write 35 3 6 Slave Mode Data Read 35 4 Register Descriptions 36 Low Power Operation ROI 36 1 1 Registers eee 36 2 Operation 36 2 1 Unused Pins 36 2 2 Unused Peripherals 36 2 3 Clock Rates 36 2 4 Short Chip Selects 36 2 5 Self Timed Chip Selects 36 3 Register Descriptions 37 Specifications 37 1 Preliminary DC Characteristics 37 2 AC Characteristics
14. 69 Stack Segment Register 69 Write Protect Segment x High Register 79 Write Protect Segment x Low Register 78 Write Protect Segment x Register TI Network Port B een 288 Enable Network Port Register 34 308 Network Port B Collision Window Register 302 Network Port B Command Register 297 Network Port B Configuration 0 Register 300 Network Port Configuration 1 Register 300 Network Port B Configuration 2 Register 301 Network Port B Configuration 3 Register 301 Network Port B Control Status Register 296 Network Port Data Register 295 Network Port B Frame Limit LSB Register 303 Network Port B Frame Limit MSB Register 303 Network Port Gap 0 Register 302 Network Port Gap 1 Register 302 Network Port Gap 2 Register 302 Network Port Last Data Register 295 Network Port Command Register 304 Network Port B MII Configuration Register 303 Network Port B MII PHY Address Register 304 Network Port Read LSB Register 305 Network Port B MII Read MSB Register 305 Network Port B MII Register Address Register 304 Network Port Reset Register 304 Network Port Status Register 305 Network Port B MII Write LSB Regist
15. 111 Parallel Port Cx Control Register 112 Parallel Port D euet meet 116 Parallel Port D Alternate High Register 120 Parallel Port D Alternate Low Register 119 Parallel Port D Bit 0 Register 121 Parallel Port D Bit Register 121 Parallel Port D Bit 2 Register 122 Parallel Port D Bit 3 Register 122 Parallel Port D Bit 4 Register 122 Parallel Port D Bit 5 Register 122 Parallel Port D Bit 6 Register 123 Parallel Port D Bit 7 Register 123 Parallel Port D Control Register 120 Parallel Port D Data Direction Register 121 Parallel Port D Data Register 119 Parallel Port D Drive Control Register 121 Rabbit 6000 User s Manual rabbit com 455 Parallel Port D Function Register 121 Parallel Port Dx Control Register 124 Parallel Port B seite 128 Parallel Port E Alternate High Register 132 Parallel Port E Alternate Low Register 131 Parallel Port E Bit 0 Register 133 Parallel Port E Bit 1 Register 133 Parallel Port E Bit 2 Register 134 Parallel Port E Bit 3 Register 134 Parallel
16. RCLKF PCO TXD 10 TIMER CO TCLKF NOTE 10 17 are strobes for External I O Rabbit 6000 User s Manual digi com 106 Table 10 2 Parallel Port C Pin Alternate Input Functions Pin Name Input Capture 7 yes RXA RXE PC6 E 5 yes RXB RCLKE PC4 TCLKE PC3 yes RXC RXF PC2 E PC1 yes RXD RCLKF PEU TCLKF 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 PCO When is read the actual voltage on the pins is returned whether the pins set as inputs or out puts 10 1 1 Block Diagram Parallel Port C Serial Ports A Tx Rx Clocks External 10 Strobes PWM Output Timer C Output Input Capture Rabbit 6000 User s Manual digi com 107 10 1 2 Registers Register Name Mnemonic I O Address R W Reset Port C Data Register PCDR 0x0050 R W 00010101 Port C Data Direction Register PCDDR 0x0051 R W 01010101 Port C Alternate Low Register PCALR 0 0052 00000000 Port Alternate High Register PCAHR 0x0053 00000000 Port Drive Control Register PCDCR 0 0054 00000000
17. 14 2 Dependencies 14 2 1 I O Pins Parallel Port G uses the pins PGO through PG7 These pins can be used individually as data inputs or out puts serial port signals PWM or Timer C outputs external interrupt or input capture inputs external I O strobes or inputs and outputs for Flexible Interface Module B All pins are set as inputs on startup The individual bits can be set to be open drain via PGDCR Drive strength slew rate and the pullup down resistor status are selectable via PGxCR See the associated peripheral chapters for details on how they use Parallel Port G 14 2 2 Clocks All outputs on Parallel Port G are clocked by the peripheral clock unless changed in PGCR where the option of updating the Parallel Port pins can be synchronized to the output of Timer A1 Timer or Timer B2 14 2 3 Other Registers Register Function Select a Parallel Port pin as an external 5 I6CR I7CR interrupt input Rabbit 6000 User s Manual digi com 147 14 2 4 Interrupts External interrupts can be accepted from any pin on Parallel Port G see Chapter 7 for more details 14 3 Operation The following steps must be taken before using Parallel Port G 1 Select the desired input output direction for each pin via PGDDR 2 Select high low or open drain functionality for outputs via PGDCR 3 If a particular drive strength slew rate or pullup down status
18. 37 3 External Memory Access Times 37 3 1 Memory Reads 37 3 2 Memory Writes 419 37 3 3 External I O Reads 422 37 3 4 External I O Writes 422 37 4 Clock 2 0 222421 425 37 4 Recommended Clock Memory Configurations 425 37 5 Power and Current Consumption 427 37 5 1 Sleepy Mode Current Consumption 427 37 5 2 Battery Backed Clock Current Consumption sese 428 38 Package Specifications and Pinout 38 1 Ball Grid Array Packages 429 38 1 1 Pinout 17mm x 17mm BGA 292 429 38 1 2 Pinout 15mm x 15mm BGA 233 430 38 1 3 Mechanical Dimensions and Land Patteri iuret 431 38 2 Rabbit Pin Descriptions 434 Appendix A Parallel Port Pins with Alternate Functions A 1 Alternate Parallel Port Pin Outputs 441 A 2 Alternate Parallel Port Pin Inputs 444 Rabbit 6000 User s Manual digi com 1 THE RABBIT 6000 PROCESSOR 1 1 Introduction Rabbit Semiconductor was formed expressly to design a better microprocessor for use in small and medium scale single board computers The first microprocessors were the Rabbit 2000 Rabbit 3000 Rab bit 4000 and the Rabbit 5000 The latest microprocessor is the Rabbit 60
19. irass 159 PCDGR uen REUS 111 158 PCDDR auqa L kusana Rer Pueri eios 110 159 PEDR ese 110 PHUDDR uu u reote rrr Sasa 160 Em 111 PHDR RR 158 idR ERE EE VE 112 5 5 Era p oe UR 159 PDAHR 120 PWBAR eene tete ia 347 Rabbit 6000 User s Manual rabbit com 452 PW BPR BUE 347 SxER asynch mode 197 214 PWLOR uu ete 346 SxER clocked serial mode 198 PWLIR eet eet dette 346 SxER HDLC mode esses 215 PWLXR 347 193 210 PWNIXR ee HERE 347 SxSR asynch mode 194 211 be 339 SxSR clocked serial mode 195 QDCSR 338 SxSR HDLC 212 QDCXHR EERS 339 168 QDCXR 339 167 RAMSR 76 167 49 167 RIGCXR 49 TATXR iie eb eterne tie tete 168 SEGS IZ asa
20. Analog Component 1 I MSB Register 0 0811 Analog Component 1 Q LSB Register A1QLR 0 0812 Analog Component 1 MSB Register AIQMR 0x0813 Analog Component 1 Control Register 1 0 0814 00000000 Analog Component 2 LSB Register A2LR 0x0820 Analog Component 2 MSB Register A2MR 0x0821 Analog Component 2 Control Register A2CR 0 0824 00000000 22 3 Dependencies 22 3 1 1 Pins The fast A D converter accepts differential input on the pin pairs VRXI VRXI and The AD_RSET pin should be connected as shown in the sample circuit in Figure 22 1 The VBG pin is for testing use only and should remain unconnected The fast D A converter provides differential current output from 0 4mA on the pin pairs ITXI ITXI and ITXQ ITXQ DA RSET and COMP should be connected as shown in the sample circuit in Figure 22 2 Note that the fast D A converter uses the 2 5 V power from an internal regulator the proper connection for this is also in the sample circuit diagram The slow A D converter accepts a single input on the 5 VIN pin The S AD REF and 5 AD REF pins are for testing use only and should remain unconnected The sample circuit is shown in Figure 22 3 The PD4 PDS and PD6 pins can be used instead of the peripheral clock as clock inputs for an
21. RXB RCLKE PD4 TCLKE PD3 yes DREQI QD2A RXC RXF PD2 DREQO QD2B SCLKC PD1 yes INTI QDIA RXD PD0 INTO QD1B SCLKD TCLKF PE7 yes yes DREQ1 QD2A 5 5 RXA RXE Rabbit 6000 User s Manual rabbit com 444 Table A 3 Parallel Port Pin Input Functions E Input Extemal Quad Serial Serial in Capture Hand DMA Interrupt USB rature Slave Port Ports Ports shake Decoder A D 6 yes QD2B E 5 INTI QDIA RXB RCLKE PE4 yes INTO QDIB TCLKE PE3 yes yes DREQI OVCR QRD2A RXC RXF PE2 yes DREQO QRD2B SCLKC 1 yes yes INT1 QRDIA RXD RCLKF PEO yes INTO QRDIB SCLKD TCLKF 5 Input 1 0 A Serial Serial in Capture Hand DMA ater FIM Slave Port Ports Ports shake A D INT2 7 FIMA7 PF6 INT2 7 FIMA6 5 INT2 7 FIMAS5 PF4 INT2 7 FIMA4 PF3 INT2 7 FIMA3 PF2 INT2 7 FIMA2 PF1 INT2 7 FIMAI PFO INT2 7 FIMAO PG7 INT2 7 FIMB7 PG6
22. ion a 145 dependencies 8924 336 PGDR setup 145 inputs 333 register descriptions 2 2 22 149 eee qute ties 334 336 337 a 147 example 337 Parallel 153 operation tegen tans 337 alternate output functions s 153 OVETVIEW 333 block diagram 154 register descriptions 338 156 TegiSteTS 335 dependencies uu ette 156 R 1 P 156 Operation eani rennen 157 Rabbit 6000 2 2 2 22 21 20022000002 0000000000000 0 3 341 8 OVefVISW uusha 153 block diagram asua a a SR u aaa 11 PHDR setup uu a nE 153 feature summary 2 8 register descriptions 44 4440 00000 158 il M 9 155 10 100Base T Ethernet 10 peripherals EMI mitigation 2 9 system management 2 42 input capture channels a 9 descriptions 434 instruction set 9 alternate pin functions memory ACCESS 9 Parallel Port and outputs 441 onchip encryp
23. 305 133 304 PEDDR 133 NBMSR 305 PEDRO RES 131 NBMWLDRBR iecore asa saa 304 PEPR nove 133 NBM W MR ei eer u ee 305 PEXCR eter ERN 135 NBPAXR 2 eet riori lorte re erat ea 299 5555 142 298 PEADR nas 141 NBRMR 2 2 Rete Prae eere 302 5 142 NBSAKR uuu y ee tener edes 306 PEDGR 143 NBTCR 298 lddbplb apr 143 NBWTESR 45 tie eror 299 PEDR ise tiep us 141 25 ee Sette 297 5 143 esee eicere tete a t 297 298 eerte rS 144 NBISR enden 295 150 NID WR detector rete REUS 321 PGALR ee ei 149 PADR rcr eee 98 151 PAX GR seco ee RN EON 98 PGDGCR nene ENS ees 151 PBDDR ua ayaq 104 PGDDR onte te siete 151 PBDR une EE E 104 PGDR p 149 eiecti ayna aaah Ir 104 POPR tea det ia 151 epe s 111 PGXCR edente dere thes 152 160 110 PHAHR
24. Port F Alternate Low Register PFALR 0 003 00000000 Port F Alternate High Register PFAHR 0x003B 00000000 Port F Control Register PFCR 0 003 xx00xx00 Port F Function Register PFFR 0x003D 00000000 Port F Drive Control Register PFDCR 0x003E R W 00000000 Port F Data Direction Register PFDDR 0x003F R W 00000000 Port Fx Control Register PFxCR Ox04B8 x W 00000 13 2 Dependencies 13 2 1 I O Pins Parallel Port F uses the pins PFO through PF7 These pins can be used individually as data inputs or out puts serial port signals PWM or Timer C outputs external interrupt external I O strobes or inputs and out puts for Flexible Interface Module A All pins are set as inputs on startup The individual bits can be set to be open drain via PFDCR Drive strength slew rate and the pullup down resistor status are selectable via PFxCR See the associated peripheral chapters for details on how they use Parallel Port 13 2 2 Clocks All outputs on Parallel Port F are clocked by the peripheral clock unless changed in PFCR where the option of updating the Parallel Port F pins can be synchronized to the output of Timer 1 Timer or Timer B2 13 2 3 Other Registers Register Function Select a Parallel Port pin as an external 5 I6CR I7CR interrupt input Rabbit 6000 User s Manual digi com 139 13 2 4 Interrupts
25. 275 265 275 266 376 DMCSLER eb tre nette tes dee 264 EARSER e ERES 374 DMCSMR eere 264 EBGBXRB entree ten Wette Hebe 380 DMHER doin ey ee rege 265 5 381 DMHMR qm 265 FBCMR aoaaa qasa tete 381 382 ul rte u 268 EBDER etn t eter ere 377 5 269 56 toe RS 278 267 55 279 DERCR eee 270 379 DTRDER eee ero eet eene 271 SY 379 DYRDLB oett ertet rore 2770 378 DyBCR euet e ade 266 FBPEXR uno e tree bes sQ 380 DyBUOR Rer 274 FBRSER 377 DYBUIR asan 274 GCDR ue 30 415 DyCR_u 278 GCMOR dm 29 DyDAOR 281 GCMIR ukuk rere 29 DY DAUR rrt 282 52 DyDA2R uuu Sere ret eee ren 282 tree tes 28 48 413 DyIAOR erint
26. 2 0 000 always run at the CPU clock speed when running the CPU from the 32 kHz clock 001 This bit combination is reserved and should not be used 010 This bit combination is reserved and should not be used 011 This bit combination is reserved and should not be used 100 transactions use the CPU clock divided by 2 101 transactions use the CPU clock divided by 4 110 I O transactions use the CPU clock divided by 8 111 T O transactions use the CPU clock divided by 16 Rabbit 6000 User s Manual digi com 358 Control Pin Control Register IOPCR Address 0x04A3 Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 3 2 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 These bits are reserved and should be written with zeros Slave Port Control Register SPCR Address 0x0024 Bit s Value Description 7 0 Program fetch as a function of the SMODE pins 1 Ignore the SMODE pins program fetch function 6 5 Read These bits report the state of the SMODE pins Write These bits are ignored and should be written with zero 4 2 000 Disable the slave port Parallel Port A is a byte wide input port 001 Disable the slave port Parallel Port A is a b
27. Slave Port Slave ATTN Interrupt Interrupt 500 507 SA0 SA1 Bus ISRD IN Interface ISWR ISCS 21 1 2 Registers Register Name Mnemonic Address R W Reset Slave Port Data 0 Register SPD0R 0x0020 R W XxXXXXXX Slave Port Data 1 Register SPDIR 0x0021 Slave Port Data 2 Register SPD2R 0x0022 Slave Port Status Register SPSR 0x0023 R 00000000 Slave Port Control Register SPCR 0x0024 R W 0xx00000 Rabbit 6000 User s Manual digi com 217 21 2 Dependencies 21 2 1 I O Pins When the slave port is enabled by writing to SPCR the following pins are enabled for slave port mode Note that enabling the slave port mode will override any general purpose I O or external I O bus settings for these pins when the slave port is enabled they will perform slave port functionality Table 21 2 Slave Port Pin Functionality Pin s pride Direction Functionality PAO PA7 SDO SD7 Bidirectional Slave data bus PB7 SLVATTN Output Slave interrupt request output PB6 5 5 Input Slave chip select 4 5 5 0 5 1 Input Slave address bus PB3 SRD Input Slave port read strobe PB2 SWR Input Slave port write strobe PE7 5 5 Input Alternate slave chip select 21 2 2 Clocks All slave port operations are based on the processor clock 21 2 3 Interrupts If slave port interrupts are enabled a slave port i
28. sess 324 Input Capture Control Register 329 Input Capture Control Status Register 328 Input Capture LSB x Register 331 Input Capture MSB x Register 332 Input Capture Source x Register 331 Input Capture Trigger x Register 330 low power operation 404 Global Clock Double Register 415 Global Control Status Register 413 Global Power Save Control Register 414 memory management 4 2422222 58 61 Advanced Chip Select x Control Register 76 Data Segment High Register 70 Data Segment Low Register 70 Data Segment Register 2 2 2 2 2 69 Memory Alternate Control Register 75 Memory Bank x Control Register 71 72 Memory Timing Control Register 74 MMU Expanded Code Register 73 MMU Instruction Data Register 68 RAM Segment Register 76 Segment Size Register 2 70 Stack High Limit Register 80 Stack Limit Control Register 80 Stack Low Limit Register 80 Stack Segment High Register 69 Stack Segment Low Register
29. 70 TBCER eii diane teenies 175 SGBMOR teneri pe a EE 401 TBCMR enero nr teinte 175 SGBMLUR 401 eer helenae 173 5 2 rtr eed 401 TBCSR uerit erint t Polus 173 SGBMOR eie 401 25 gw odin elie 174 SGCOR J 395 On RR 174 SGOIR lessees ears 396 TBSEXR 174 506 2 ee eon 396 TBSMXR ioc ether 174 SGCBR de 396 T CBAR tete roter 183 SGCDOR erento Feier inna be 398 TCBPR cieren teret 183 SGCDIR ascii eee me nase 399 qu 181 50 02 399 qm 181 SGCDSR RR eerte ERE Ep 399 TCODER eite 181 SGDR teen 399 PEDIR nnt reta cem 181 T 402 inerte 182 SGSOR eet eae ind aet en 397 TCRXLR sau uqa a 182 dec 398 TCOCSXHR 182 501528 H 398 T SXDR uq au 182 SGS3R qe 398 USBWR 321 NIENTE serres esi seire 399 VRAMOO VRAMIE 53 SGSAJTR 399 WDTCR qu 50 167 71 M Qaashykask asa 400 WD YETR tier mrt ti rni 50 SGSABR sse sene etd
30. Normal 01 Normal spreading of frequencies Normal Strong O0xxxxxx to 50 MHz strong spreading of 3 ns frequencies over 50 MHz Strong spreading of frequencies up Strong 10 to 50 MHz normal spreading of 4 5 ns frequencies over 50 MHz Rabbit 6000 User s Manual digi com 22 The spectrum spreader either stretches or shrinks the low plateau of the clock by a maximum of 3 ns for the normal spreading and up to 4 5 ns for the strong spreading If the clock doubler is used this will cause an additional asymmetry between alternate clock cycles Both normal and strong modes reduce clock harmonics by approximately 15 dB for frequencies above 100 MHz for lower frequencies the strong setting has a greater effect in reducing the peak spectral strength as shown in Figure 2 2 15 m Strong Spreading 8 10 5 Normal Spreading S 5 50 100 150 200 250 300 350 Frequency MHz Figure 2 2 Peak Spectral Amplitude Reduction by Spectrum Spreader Two registers control the clock spectrum spreader These registers must be loaded in a specific manner with proper time delays GCMOR is only read by the spectrum spreader at the moment when the spectrum spreader is enabled by setting bit 7 of GCMIR If bit 7 of GCMIR is cleared when disabling the spectrum spreader there is up to a 500 clock delay before the spectrum spreader is actually disabled The p
31. eee 229 TEISTER S cio D IS ORE ED ERN EHI QURE OUS 36 breakpoints etre E 360 B block diagram o n 361 block diagram dependencies 363 230 241 riii es 363 Decir m S 36 am PIETS 307 breakpoints nee teet 361 D S ie ClOCKS onsite sess asnukuna uama aa 17 Ad MIU QM 2 DMA channels za santan anan atun 252 register descriptions um Rabbit 6000 User s Manuall rabbit com 446 Ge 362 Ethernet 263 HDLC serial ports 263 PWM and Timer 263 clock modes 20 USB 263 CLOCKS 16 WIFE Lane ertet nennen nnne 263 32 kHzZ clock n a 26 DMA cohtrol 249 oscillator circuit eee 26 E power consumption 2 2 27 block 2 17 Error Check and Correction clock do blet eee 24 25 block 384 clock modes 20 e cp 385 clock speeds 427 dependencies reet 385 doubling dividing 16 loe occ 385 EMI mitigation 16 OPCLALLON verserien sectii inin 38
32. The FIMA interrupt vector is in the IIR at offset 0x130 It can be set as Priority 1 2 or 3 by writing to FAICR The FIMB interrupt vector is in the at offset 0x140 It can be set as Priority 1 2 or 3 by writing to FBICR Rabbit 6000 User s Manual digi com 371 33 4 Operation While the detailed operation of the Flexible Interface Modules is beyond the scope of this manual this sec tion will describe how to initialize and start the Flexible Interface Modules The following steps explain how to load and start a Flexible Interface Module application WwW N 33 4 1 Handling Interrupts If desired write the appropriate interrupt vector for the interrupt service routine to the internal inter rupt table Enable the appropriate Flexible Interface Module clock in MSCR Write a 0 to bit 7 of FxICR to disable the Flexible Interface Module and allow loading of the appli cation Write the Flexible Interface Module application to the address range starting at FxCLR and FxCMR Write a 1 to bit 7 of FxICR to enable the Flexible Interface Module If interrupts from the module are to be used set the priority level in bits 0 1 of FxICR as well The Flexible Interface Module is now running the loaded application 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
33. 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 ret Rabbit 6000 User s Manual digi com 180 18 4 Register Descriptions Timer C Control Status Register TCCSR Address 0x0500 Bit s Value Description 7 2 These bits are always read as zero 1 0 Timer C divider has not reached its maximum value Read l Timer C divider has reached its maximum value This status bit is cleared only by the read of this register as is the Timer C interrupt 0 0 The clock input for Timer C is disabled 1 The clock input for Timer C is enabled Timer C Control Register TCCR Address 0x0501 Bit s Value Description 7 4 These bits reserved and should be written with zero 3 2 00 Timer C clocked by main Timer C clock i e CLK 2 01 Timer clocked by the output of Timer 1 10 Timer C clocked by main Timer C clock divided by 8 i e CLK 16 11 Timer clocked by the output of Timer 11 1 0 00 Timer C interrupts are disabled 01 Timer interrupt use Interrupt Priority 1 10 Timer C interrupt use Interrupt Priority 2 11 Timer C interrupt use Interrupt Priority 3 Timer C Divider Low Register TCDLR Address 0x0502 Bit s Value Description 7 0 The eight LSBs of the divider limit value for Timer
34. A buffer descriptor in memory consists of either 12 or 16 consecutive bytes organized as shown in Table 24 2 The DMA channel uses the information in the control byte to determine the length of the buf fer descriptor as well as which information to fetch from the buffer descriptor If no link address field is present the buffer descriptor is only 12 bytes long A memory address for either source or destination causes the DMA channel to fetch three bytes from the corresponding field in the buffer descriptor An internal I O or external I O address for either source or destination causes the DMA channel to fetch two bytes from the corresponding field in the buffer descriptor DMA memory addresses are always physical addresses and are never translated by the MMU All DMA memory addresses use the memory control signals wait states and flipped bits as selected in the Master Memory Bank Control registers All DMA external I O addresses use the I O control signals and wait states as selected in the external I O registers The first byte in the first buffer descriptor the byte pointed to by the initial address is reserved for status information when transferring data from an internal serial or network device This automatic status transfer means that the processor does not need to service any interrupts from a serial or network receiver except in the case of an error condition When transferring data to an internal HDLC serial or Ethernet transmitter
35. PG5 FIMB5 I5 PWMI RCLKE PG4 FIMB4 I4 PWMO TCLKE PG3 FIMB3 I3 TIMER C3 SCLKD PG2 FIMB2 12 2 TXF PGI FIMB1 TIMER RCLKF PGO FIMBO 10 TIMER CO TCLKF PH7 7 PWM3 SCLKC D15 PH6 16 PWM2 TXE D14 5 15 PWMI RCLKE D13 PH4 I4 PWMO TCLKE D12 PH3 TIMER C3 SCLKD D11 PH2 12 TIMER C2 TXF D10 PHI II TIMER RCLKF D9 PHO 10 TIMER CO TCLKF D8 Rabbit 6000 User s Manual rabbit com 443 A 2 Alternate Parallel Port Pin Inputs Table A 3 Parallel Port Pin Input Functions Pi Input Vo External Quad See Sene in Capture Hand DMA Interrupt USB rature Slave Port Ports Ports shake Decoder A D PA 7 0 SD 7 0 PB7 PB6 SCS PB5 SA1 PB4 SAO PB3 SRD 2 SWR SCLKA PBO SCLKB PC7 yes RXA RXE PC6 PC5 yes RXB RCLKE PC4 TCLKE PC3 yes RXC RXF PC2 PCI yes RXD RCLKF PCO TCLKF PD7 yes RXA RXE PD6 PD5 yes
36. geese ase 317 GREV register 4 42 318 periodic sas 42 dependencies 202220000 318 BS aI 42 319 320 register descriptions 48 ODELatlOB 2 5 e rae 320 I Ta ira MEUS 44 RENE 320 watchdog Fa OVELVIOW Ea icta T pasya ek 317 T register descriptions 321 u S S Ri ae 318 timers SEUD isir 320 TIMET A E dts 161 block diagram 08841 163 W capabilities eee 162 watchdog timer clocks sassa 165 primary watchdog timer 47 dependencies hauteur 165 secondary watchdog timer 47 Interrupts nennen 162 165 166 47 example ISR uuu aaa ananassa 166 166 OVEIVIEW caedere pO REUS 161 register descriptions 167 164 reload register operation 161 Timer enne nee eves we 169 block diagram see 170 scm 171 dependencies 171 Intertupts a n eee tr aqa ayq 172 Rabbit 6000 User s Manual rabbit com
37. gt 0x50D gt 0 50 gt Ox50F gt 0x518 gt 0x519 gt 0x514 gt 0x51B gt 0 51 gt 0x51D gt 0x51E gt 0x51F gt When the DMA destination address is the TCBAR the DMA request from Timer C is connected automati cally to the DMA Rabbit 6000 User s Manual digi com 176 18 1 1 Block Diagram Timer C perclk 2 Interrupt Interrupt perclki16 1 Generation Request Timer A11 Divider Registers set x Register Parallel Ports reset Register Rabbit 6000 User s Manual digi com 177 18 1 2 Registers Register Name Mnemonic I O Address R W Reset Timer C Control Status Register TCCSR 0x0500 xxxx0000 Timer C Control Register TCCR 0 0501 000000 Timer Divider Low Register TCDLR 0x0502 00000000 Timer Divider High Register TCDHR 0x0503 00000000 Timer Set 0 Low Register TCSOLR 0x0508 Timer Set 0 High Register TCSOHR 0 0509 Timer Reset 0 Low Register TCROLR 0 050 Timer Reset 0 High Register TCROHR 0 050 Timer Set 1 Low Register TCSILR 0x050C Timer Set 1 High Register TCS1HR 0x050D Timer Reset 1 Low Register TCRILR 0 050 Timer Res
38. 9 2 1 I O Pins Parallel Port B uses pins PBO through PB7 These pins can be used individually as data inputs or outputs as the address bits for the external I O bus as control signals for the slave port or as clocks for Serial Ports A and On startup bits 6 and 7 are outputs set low for backwards compatibility with the Rabbit 2000 All other pins are inputs Drive strength slew rate and the pullup down resistor status are selectable via PBxCR Note that when the external I O bus or slave port is enabled in SPCR the Parallel Port B pins associated with those peripherals perform those actions no matter what the settings are in PBDR or PBDDR See the associated peripheral chapters for details on how they use Parallel Port B 9 2 2 Clocks All outputs on Parallel Port B are clocked by the peripheral clock perclk 9 2 3 Other Registers Register Function Sets the Parallel Port B function for some pins PELIS if the slave port or external I O bus is enabled 9 2 4 Interrupts There are no interrupts associated with Parallel Port B except when the slave port is being used Rabbit 6000 User s Manual digi com 102 9 3 Operation The following steps must be taken before using Parallel Port B 1 Select the desired input output direction for each pin via PBDDR Note that this setting is super seded for some pins if the slave port or external I O bus is enabled in SPCR or if the clocked serial mode is
39. Once the external I O bus is enabled all memory read write instructions prefixed with an IOE will go to the memory bus and or external I O bus depending on the setup in that bank s IBxCR register 31 3 2 I O Strobes The following steps must be taken before using an I O strobe 1 Set the strobe type and timing for a particular device by writing to the appropriate IBxCR and registers for the I O bank desired 2 If signals other than IORD IOWR and BUFEN are required enable the output of the IBxCR reg ister by writing to the appropriate PXALR PxAHR and PxFR registers On startup the I O strobes default to chip selects with 15 wait states read only active low signaling and will use the external I O bus These settings will be used for the dedicated I O strobe pins IORD IOWR and BUFEN whenever an external I O write occurs even if no I O strobe signals are being output on par allel port pins 31 3 3 I O Handshake The following steps must be taken before using the I O handshake 1 Select the active level and desired port E bit to use as input by writing to IHCR 2 Select which I O banks the handshake is active for by writing to IHSR 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 Rabbit 6000 User s Manu
40. and PD1 All pins are set as inputs on startup The individual bits can be set to be open drain via PDDCR Drive strength slew rate and the pullup down resistor status are selectable via PDxCR See the associated peripheral chapters for details on how they use Parallel Port D 11 2 2 Clocks All outputs on Parallel Port D are clocked by the peripheral clock unless changed in PDCR where the option of updating the Parallel Port D pins can be synchronized to the output of Timer A1 Timer Bl or Timer B2 11 2 3 Other Registers Register Function SACR SBCR SCCR SDCR SECR SFCR Select a Parallel Port D pin as serial data and optional clock input ICSIR ICS2R Select a Parallel Port D pin as a start stop condition for Input Capture input QDCR Select a Parallel Port D pin as a Quadrature Decoder input IOCR I1CR Select a Parallel Port D pin as an external interrupt input DMROCR DMRICR 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 PDO see Chapter 7 for more details Rabbit 6000 User s Manual digi com 117 11 3 Operation The following steps must be taken before using Parallel Port D 1 Select the desired input output direction for each pin via PDDDR 2 Select driven or open drain functionality for outputs via PDDCR 3 If a particular drive strength slew rate or pullup down resistor
41. encuentres 256 24 3 1 Handling Interrupts 257 24 3 2 Example ISR 257 24 3 3 DMA Priority with the Processor 258 24 3 4 DMA Channel Priority 259 24 3 5 Buffer Descriptor Modes 260 24 3 6 DMA with Peripherals 263 24 4 Register Descriptions 264 25 10 100Base T Ethernet 25 1 OYVetVIe Wette dtes 285 25 1 1 Block Diagram 287 25 1 2 Registers 1 2222 tree 288 25 2 Dependencies esee 290 Rabbit 6000 User s Manual digi com 25 2 1 VO Pins 25 22 ClOCkS8 i eet 25 2 3 Other Registers 25 2 4 Interrupts 25 3 Operation tenes 25 31 Susa sss 25 3 2 23 3 3 RECEIVE 25 3 4 Handling Interrupts 25 3 5 Multicast Addressing 25 4 Register Descriptions 26 802 11a b g Wireless 26 1 Overview sese 26 1 1 Block Diagram 26 1 2 Registers 26 2 Dependencies 2621 VO Pins aes 26 3 ett 26 3 1 Other Registers 26 3 2 Interrupts 26 4 Operation
42. 0x0249 Bit s Value Description 7 6 These bits are ignored and will always return zero when read 5 0 window slot time Default and value specified by 802 3 is Rabbit 6000 User s Manual digi com 302 Network Port B Frame Limit LSB Register NBFLLR Address 0x024A Bit s Value Description 7 0 LSB of maximum frame length Network Port B Frame Limit MSB Register NBFLMR Address 0x024B Bit s Value Description MSB of maximum frame length Default and value specified by 802 3 is 7 0 0x0600 1536 including preamble address length and CRC fields Should not be less than OxOSEE 1518 for normal operation Network Port MII Configuration Register NBMCFR Address 0x0250 Bit s Value Description 7 5 These bits are ignored and will always return zeros when read 4 2 000 MII Management Clock is system clock divided by 4 001 This value is reserved and should not be used 010 MII Management Clock is system clock divided by 6 011 MII Management Clock is system clock divided by 8 100 MII Management Clock is system clock divided by 10 101 MII Management Clock is system clock divided by 20 110 MII Management Clock is system clock divided by 40 111 MII Management Clock is system clock divided by 80 1 0 Enable MII frame preambles 1 Disable MII frame preambles 0 0 Disable MII scan function 1 Enable MII scan fun
43. 15 1 2 RegIStets i crece intent mter 15 2 Dependencies esses 15 2 1 VO PIDS tec tet teres 15 22 15 2 3 Other Registers 15 2 4 Interrupts eene 15 3 Operation ederet 15 4 Register Descriptions 16 Timer A 16 1 u usa 16 1 1 Block Diagram 16 1 2 Registers 2 222 22222 2 16 2 Dependencies sees 16 2 1 VO PID 1622 2 Clocks epe eerte 16 2 3 Other Registers 16 2 4 Interrupts eee 16 3 Operation sedentes iere 16 3 1 Handling Interrupts 16 3 2 Example ISR 16 4 Register Descriptions 17 Timer B 17 1 OVeEIVIEW isi nee treten tans 17 1 1 Block Diagram 17 1 2 Registers eerte tette 17 2 Dependencies 17 2 1 UO PINS inre ret 17 22 Clocks ctr iter ees 17 2 3 Other Registers 17 2 4 Interrupts 17 3 Operation eese eerte 17 3 1 Handling Interrupts Rabbit 6000 User s Manual digi com 17 3 2 Example ISR 172 17 4 Register Descrip
44. 216 Timer Set x High Register 182 218 Timer C Set x Low Register 182 dependencies enitn eret 218 USB NOST 318 IntemripiS a 216 218 221 Network Port D Wait Register 321 example ISR eee iret 221 USB Wrapper Register 321 Operation serrenda 219 a 35 configurations 2 222 block diagram 2 36 CONMECTIONS cs iens tocar tete peser 220 dependencies retener tns 37 UL M 220 js sie aoo DE 38 master slave communication 221 register descriptions seen 41 Jo n 220 uuo ME 36 slave master communication 221 SMODE pin settings 2 2 222 39 OVEEVI W des ire er bl eter 216 86 218 5 R W UMIDS neto ee cene reet 224 serial ports register descriptions 225 clock synchronization and data encoding 206 registers a ass 217 Serial Ports 184 slavo attentlon a 216 block diagram 186 timing diagrams sese 223 Clocks NAMEN MNA 188 sleepy Clock modes 27 data cloc
45. 3 Start writing data to ECDxR 4 When all data have been written for that block read the line parity bit values from ECDXR for nor mal bit order or ECWXR for reverse bit order Read the column parity bit values from ECPR or ECPSR 34 3 2 CRC The following steps must be taken to perform a CRC calculation 1 Enable the Error Check and Correction peripheral and select the desired CRC operation by writing to ECCR Select the initial value and read data direction if desired 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 Rabbit 6000 User s Manual digi com 385 34 4 Register Descriptions ECC Data 0 Register ECDOR Address 0 05 0 Bit s Value Description 7 0 Read LP CRC bits 7 0 Write Data byte for ECC CRC calculation ECC Data 1 Register ECD1R Address 0x05C1 Bit s Value Description 7 0 Read LP CRC bits 15 8 Write Data byte for ECC CRC calculation ECC Data 2 Register ECD2R Address 0x05C2 Bit s Value Description 7 0 Read LP CRC bits 23 16 Write Data byte for ECC CRC calculation ECC Data 3 Register ECD3R Address 0x05C3 Bit s Value Description 7 0 Read LP CRC bits 31 24 Write Data byte for EC
46. Address 0x04D3 PC4CR Address 0x04D4 PC5CR Address 0x04D5 PC6CR Address 0x04D6 PC7CR Address 0x04D7 Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 3 2 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 00 No pullup or pulldown resistor 01 75 pullup resistor 10 75 pulldown resistor 11 75 keeper Rabbit 6000 User s Manual digi com 112 11 PARALLEL PORT D 11 1 Overview Parallel Port D is a byte wide port with each bit programmable for data direction and drive level These are simple inputs and outputs controlled and reported in the Port D Data Register PDDR All of the Parallel Port D pins have alternate output functions and all of them can be used as inputs to var ious on chip peripherals When used as simple digital outputs the Parallel Port D bits are buffered with the data written to PDDR transferred to the output pins on a selected timing edge Either the peripheral clock or the outputs of Timer 1 Timer or Timer B2 can be used for this function with each nibble of the port having a separate select field to control this timing Each bit can either be programmed as open drain or driven high and low Because of the buffered nature of Parallel Port D a read modify write type of ope
47. Address 0x04F1 PE2CR Address 0x04F2 Address 0x04F3 PE4CR Address 0x04F4 PE5CR Address 0x04F5 PE6CR Address 0x04F6 PE7CR Address 0x04F7 Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 3 2 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 00 No pullup or pulldown resistor 01 75 pullup resistor 10 75 pulldown resistor 11 75 keeper Rabbit 6000 User s Manual digi com 135 13 PARALLEL PORT F 13 1 Overview Parallel Port F is a byte wide port with each bit programmable for data direction and drive level These are simple inputs and outputs controlled and reported in the Port F Data Register PFDR All of the Parallel Port F pins have alternate output functions and all of them can be used as inputs to vari ous on chip peripherals When used as simple digital outputs the Parallel Port F bits are buffered with the data written to PFDR transferred to the output pins on a selected timing edge Either the peripheral clock or the outputs of Timer Al Timer B1 or Timer B2 can be used for this function with each nibble of the port having a separate select field to control this timing Each bit can either be programmed as open drain or driven high and low The drive strength and slew
48. Cleared by register write above pop af restore used registers ipres ret Rabbit 6000 User s Manual digi com 345 30 4 Register Descriptions PWM LSB 0 Register PWLOR Address 0x0088 Bit s Value Description 7 6 Least significant two bits for the Pulse Width Modulator count 5 4 00 Normal PWM operation 01 Suppress PWM output seven of eight iterations of PWM counter 10 Suppress PWM output three out of four iterations of PWM counter 11 Suppress PWM output one out of two iterations of PWM counter 3 This bit is ignored and should be written with zero 2 1 00 Pulse Width Modulator interrupts are disabled 01 Pulse Width Modulator interrupts use Interrupt Priority 1 10 Pulse Width Modulator interrupts use Interrupt Priority 2 11 Pulse Width Modulator interrupts use Interrupt Priority 3 0 0 PWM output High for single block 1 Spread PWM output throughout the cycle PWM LSB 1 Register PWL1R Address 0x008A Bit s Value Description 7 6 Least significant two bits for the Pulse Width Modulator count 5 4 00 Normal PWM operation 01 Suppress PWM output seven out of eight iterations of PWM counter 10 Suppress PWM output three out of four iterations of PWM counter 11 Suppress PWM output one out of two iterations of PWM counter 3 This bit is ignored and should be written with zero 2 1 00 Normal PWM interrupt operatio
49. RABBIT 6000 Rabbit 6000 Microprocessor User s Manual 90001108 Rabbit 6000 Microprocessor User s Manual Part Number 90001108 Printed in U S A 2011 Digi International Inc All rights reserved Digi International reserves the right to make changes and improvements to its products without providing notice 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 The Rabbit 6000 Processor 1 1 8 1 2 Feature S oe eere eem ner entren 9 1 3 Block Diagram eere 11 1 4 Basic Specifications 12 1 5 Comparing Rabbit Microprocessors 13 Clocks 2 1 REN 16 2 1 1 Block Diagram 17 2 12 REBISLELS 17 2 2 D pendencies 18 2 2 1 WO 18 2 2 2 Other Registers 2 2 2 2 19 2 3 Operation erri 20 2 3 1 Clock n 20 2 32 52 4 21 2 3 3 Spectrum Spreader 22 2 3 4 Clock Doubler 24 2 3 5 32 KH
50. Table 22 2 Wi Fi Analog Component Specifications Analog Component Feature Specification 2 Wi Fi slow A D converter Resolution 11 bits Max sample rate Clock 1 megasample sec 13MHz Input Range 0 1 x VCC33A to Single ended 0 9 x Operating Current Active 5mA 3 3 V Standby lt 10 3 3 V Nonlinearity Differential DNL 0 8 LSB typ Integral INL 2 LSB typ Rabbit 6000 User s Manual digi com 229 22 2 Block Diagram Analog Components PD4 Fast A D Converter Peripheral Select Clock VRXI VRXI Component 0 VRXQ Fast A D Converter VRXQ AOILR AOCR AOIMR Fast DIA Converter PDS Clock Select ITXI ITXI Component 1 ITXQ Fast D A Converter A1ILR A1QLR A1CR A1IMR A1QMR AID Converter i aie Component 2 S_VIN Slow AID Converter A2LR A2CR A2MR Rabbit 6000 User s Manual digi com 230 22 2 1 Registers Register Name Mnemonic Address R W Reset Analog Component 0 I LSB Register AOILR 0x0800 Analog Component 0 I MSB Register AOIMR 0 0801 Analog Component 0 Q LSB Register A0QLR 0x0802 Analog Component 0 MSB Register A0QMR 0x0803 R W xXXXXXXX Analog Component 0 Control Register A0CR 0x0804 R W 00000000 Analog Component 1 I LSB Register 0 0810
51. 0 0059 Input Capture LSB 1 Register ICLIR 0 005 R XXXXXXXX Input Capture MSB 1 Register ICMIR 0 005 R XXXXXXXX Input Capture Trigger 2 Register ICT2R 0x005C R W 00000000 Input Capture Source 2 Register ICS2R 0x005D Input Capture LSB 2 Register ICL2R 0x005E R XXXXXXXX Input Capture MSB 2 Register ICM2R 0 005 R XXXXXXXX Rabbit 6000 User s Manual digi com 324 28 2 Dependencies 28 2 1 I O Pins Each input capture channel can accept input from one of the following parallel port pins PC1 PC3 PCS PD1 PD3 PDS PD7 PE1 PES PE7 Use to select which input pin to trigger on Note that these pins can be used for other peripherals at the same time as the input capture peripheral For example you can use input capture to measure the pulse width on a serial port input which will allow you to calculate the baud rate 28 2 2 Clocks The 16 bit input capture counters are clocked from the output of Timer 8 Timer 12 be used as a predivider for Timer A8 28 2 3 Other Registers Register Function TAT8R Time constant for input capture clock TAT12R Optional predivider for Timers A8 11 TAECR Enable for Timer A12 prescaling 28 2 4 Interrupts Each input capture channel can generate an interrupt whenever a start and or stop condition occurs The interrupt request is cleared when ICCSR is read
52. 307 PWM LSB 1 346 Master System Status Register 33 PWM LSB x 347 Real Time Clock Control Register 49 PWM MSB x Register 347 Real Time Clock x Register 49 Quadrature Decoder sss 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 Rabbit 6000 User s Manual rabbit com 456 Timer Acie ia clase is ea 164 184 Timer A Control Register 168 use of clocked Serial Port 188 Timer A Control Status Register 167 use of clocked Serial Port D 188 Timer A Extended Control Register 167 Serial Ports 200 Timer Prescale Register 167 asynchronous mode 2 2 200 Timer A Time Constant x Register 168 block diagram 201 Timet B 22e 171 ise e n 203 Timer B Control Register 173 dependencies eerie ie tene 203 Timer B Contro
53. 5 1 1 Block Diagram 2 57 5 1 2 REGISTERS usa aaa lawa 58 9 2 cene tende 60 221 VO Pins rites 60 5 2 2 CIOCKS teret a EUER 60 23 9 nterr pts eem eem 60 3 9 Op ration 61 5 3 1 Internal RAM 61 5 3 2 Memory Management Unit MMU 61 5 3 3 Memory Bank Operation 62 5 3 4 Memory Modes 64 5 3 5 Separate Instruction and Data Space 66 5 3 6 Memory Protection 67 5 3 7 Stack Protection 67 5 4 Register Descriptions 68 Interrupts 6 1 OVerVIGW arem rep dee theese 83 6 2 20 ree 84 6 3 Interrupt Tables 84 External Interrupts TFA teme ceste 87 7 2 Block Did t Misie secet 88 72 1 Rebisters a sexes 89 7 3 90 1 3 1 UO PMs 90 7 3 2 46 rere erre tr tinere ee 90 72 2 etn 90 7 4 Operation sees 91 7 4 1 Example ISR 91 7 5 Register Descriptions 92 Parallel Port A 8 1 OVERVIEW 94 8 1 1 Blo
54. Bit s Value Description 7 0 Breakpoint x Address 15 8 Breakpoint x Address 2 Register BOA2R Address 0x030E B1A2R Address 0x031E B2A2R Address 0x032E B3A2R Address 0x033E B4A2R Address 0x034E B5A2R Address 0x036E B6A2R Address 0x037E Bit s Value Description 7 0 Breakpoint x Address 23 16 Rabbit 6000 User s Manual digi com 366 BOMOR B1MOR B2MOR B3MOR B5MOR B6MOR Breakpoint x Mask 0 Register Address 0x0308 Address 0x0318 Address 0x0328 Address 0x0338 Address 0x0348 Address 0x0368 Address 0x0378 Bit s Value Description 7 0 Breakpoint x Mask 7 0 A one in a bit position inhibits the address compare for that bit position BOM1R B1M1R B2M1R B3M1R B4M1R B5M1R B6M1R Breakpoint x Mask 1 Register Address 0x0309 Address 0x0319 Address 0x0329 Address 0x0339 Address 0x0349 Address 0x0369 Address 0x0379 Bit s Value Description 7 0 Breakpoint x Mask 15 8 A one in a bit position inhibits the address compare for that bit position BOM2R B1M2R B2M2R B3M2R B4M2R B5M2R B6M2R Breakpoint x Mask 2 Register Address 0x030A Address 0x031A Address 0x032A Address 0x033A Address 0x034A Address 0x036A Address 0x037A Bit s
55. CSO 01 Page Mode 8 bit operation for CSO 10 Normal 16 bit operation for CSO 11 Page Mode 16 bit operation for CSO Rabbit 6000 User s Manual digi com 75 Advanced Chip Select x Control Register ACSOCR Address 0x0410 ACS1CR Address 0x0411 ACS2CR Address 0x0412 Bit s Value Description 7 5 000 Zero extra wait states for reads writes or first Page Mode access 001 One extra wait state for reads writes or first Page Mode read access 010 Two extra wait states for reads writes or first Page Mode access 011 Three extra wait states for reads writes or first Page Mode read access 100 Four extra wait states for reads writes or first Page Mode read access 101 Five extra wait states for reads writes or first Page Mode read access 110 Six extra wait state for reads writes or first Page Mode read access 111 Seven extra wait state for reads writes or first Page Mode read access 4 3 00 Zero extra wait states for subsequent Page Mode accesses 01 One extra wait state for subsequent Page Mode accesses 10 Two extra wait states for subsequent Page Mode accesses 11 Three extra wait states for subsequent Page Mode accesses 2 This bit is reserved and should not be used 1 0 Page size 16 bytes 1 Page size 8 bytes 0 0 Disable byte writes on 16 bit bus 1 Enable byte writes on 16 bit bus RAM Segment Register
56. PEFR PEAHR PEALR TATIR Prescaler for TATAR TAT7R TAPR Prescaler for TATIR TACR Input selection for TATAR TAT7R 19 2 4 Interrupts A serial port interrupt will be generated whenever any of the following occurs A byte is available in the receive buffer A byte is moved from the transmit buffer to the transmitter The transmitter is idle These occurrences correspond to bits 7 3 and 2 of the Serial Port Status Registers The serial port interrupt vectors are located in the IIR as follows e Serial Port A at offset 0 0 0 Serial Port B at offset 0x0D0 e Serial Port C at offset OxOEO Serial Port D at offset OxOFO Each of them can be set as Priority 1 2 or 3 in SxCR where x is A D for the four serial ports Rabbit 6000 User s Manual digi com 189 19 3 Operation TIP Remember to set up the serial port registers before commanding the serial port to send or receive any data 19 3 1 Asynchronous Mode The following steps explain how to set up Serial Ports A D for asynchronous operation These instruc tions also apply to the asynchronous operation of Serial Ports E F N Re alternate output register PxALR or 95 interrupt priority Write the interrupt vector for the interrupt service routine to the internal interrupt table Set up the desired transmit pin by writing to the appropriate parallel port function register and Select the appropriate
57. Port C Function Register PCFR 0x0055 R W 00000000 Port Cx Control Register PCxCR 0 04 0 x W xxx00000 10 2 Dependencies 10 2 1 I O Pins Parallel Port C uses pins PCO through PC7 These pins can be used individually as data inputs or outputs as serial port transmit and receive for Serial ports as clocks for Serial Ports as external I O strobes or as outputs for the PWM and Timer C peripherals The input capture peripheral can also watch pins PC7 PCS PC3 and PC1 On startup PC4 PC2 and PCO 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 See the associated peripheral chapters for details on how they use Parallel Port C 10 2 2 Clocks All outputs on Parallel Port C are clocked by the peripheral clock 10 2 3 Other Registers Register Function SACR SBCR SCCR Select a Parallel Port pin as serial data and SDCR SECR SFCR optional clock input Select a Parallel Port C pin as a start stop RO s condition for Input Capture input 10 2 4 Interrupts There are no interrupts associated with Parallel Port C Rabbit 6000 User s Manual digi com 108 10 3 Operation The following steps must be taken before using Parallel Port C 1 Select the desired input ou
58. The A D converter is muxed across eight channels which can be sampled individually or continuously across all channels Rabbit 6000 User s Manual digi com 10 1 3 Block Diagram 200 MHz System PLL 32 kHz Real Tie Clock Watchdog Timers Spectrum Spreader Clock Doubler Divider ECC Timer Timer B Timer C 32KB Battery Backed SRAM 1MB Fast SRAM 16 channel DMA 24 bit Address 16 bit Data External Memory Bus 8 channel ADC 2KB Tx FIFO 2KB Rx FIFO 802 11a b g MAC Figure Rabbit 6000 CPU Bootstrap asynch or serial flash Serial Ports A D asynch clocked IrDA Serial Ports E F asynch HDLC IDA lt Pulse Width Modulator Timer C PWM Quadrature Decoder Input Capture Parallel Ports Slave Port 22 gt 0 0 a EX T N AG N d 2KB 2KB 2KB 2KB Tx FIFO Rx FIFO Tx FIFO Rx FIFO 10 100 Ethernet USB 2 0 compatible MAC and PHY Full Speed USB Host 1 1 Rabbit 6000 Block Diagram Rabbit 6000 User s Manual digi com 11 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
59. Value Description 7 0 Breakpoint x Mask 23 16 A one in a bit position inhibits the address compare for that bit position Rabbit 6000 User s Manual digi com 367 33 FLEXIBLE INTERFACE MODULES 33 1 Overview The Rabbit 6000 contains two Flexible Interface Modules or FIMs These modules are essentially small independent microcontrollers that can be used to provide a wide range of customized peripherals such as CAN SD card or 1 Wire serial Each Flexible Interface Module can run at up to 400 MHz and includes 1024x14 bits of program memory and 256x8 bits of data memory Most Flexible Interface Module applications are expected to use a single parallel port so bit by bit selection of 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 Communication between the Rabbit 6000 and the Flexible Interface Modules is realized in several ways 16 byte TX FIFO from the Rabbit to the Flexible Interface Module 16 byte RX FIFO from the Flexible Interface Module to the Rabbit 16 byte RX status FIFO from the Flexible Interface Module to the Rabbit that can be used to signal end of packet or an error condition e 16 control byte registers that can be written b
60. a 75 kQ pullup or pulldown resistor can be enabled on each pin 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 Pin Name Silanus S US 7 TAS PB6 4 5 PB4 2 PB3 2 SCLKA 7 PBO SCLKB IA6 Rabbit 6000 User s Manual digi com 100 Table 9 2 Parallel Port B Pin Alternate Input Functions Pin Name Slave Port Serial Ports A D PB7 2 PB6 SCS m PB5 SAI 4 5 0 SRD 2 SWR 2 SCLKA ia SCLKB 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 Parallel Port B PBDR SA1 SAO ISLAVATTN 7 2 15 5 SRD SWR External I O 7 2 7 0 Address Serial Ports A amp B 1 0 Clocks Rabbit 6000 User s Manual digi com 101 9 1 2 Registers Register Name Mnemonic I O Address R W Reset Port B Data Register PBDR 0x0040 00 Port Data Direction Register PBDDR 0x0047 R W 11000000 Port Bx Control Register PBxCR 0x04C0 x W xxx00000 9 2 Dependencies
61. as shown in Table 5 1 The DATASEG and STACKSEG registers provide backwards compatibility to the Rabbit 2000 and 3000 processors these registers map directly to DATASEGL and STACKSEGL but the contents of DATASEGH and STACKSEGH are set to zero Table 5 1 Memory Management Registers Register Segment Size Comments Maps to DATASEGL DATASEG Bi 8 bits DATASEGH set to 0x00 DATASEGL Data 8 bits DATASEGH Data 4 bits Maps to STACKSEGL STACKSEG Stack 8 bits STACKSEGH set to 0x00 STACKSEGL Stack 8 bits STACKSEGH Stack 4 bits Loaded via instructions 858 vPC AandLD A XPC Loaded via instructions ERES 12588 HL and LD HL LXPC Rabbit 6000 User s Manual digi com 61 Each of these registers provides a multiple of 4 KB offset that is added to the logical address to provide a physical address as shown in Figure 5 3 DATASEGH EN DATASEG DATASEGL 16 bit logical address EN 20 bit physical address 24 bit physical address STKSEGH STKSEG STKSEGL 16 bit logical address EN 20 bit physical address 24 bit physical address 16 bit logical address EN 20 bit physical address 24 bit physical address Figure 5 3 MMU Operation 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
62. by strapping the SCFG pin high this bit combination is forced for MBOCR only Rabbit 6000 User s Manual digi com 72 MMU Expanded Code Register MECR Address 0x0018 Bit s Value Description 7 5 000 Bank Select Address is 19 18 001 Bank Select Address is A20 A19 010 Bank Select Address is A21 A20 011 Bank Select Address is 22 21 100 Bank Select Address is 23 22 101 This bit combination is reserved and should not be used 110 This bit combination is reserved and should not be used 111 Bank Select Address is A18 A17 4 This bit is reserved and should be written with zero Read returns zeros 3 0 0000 Normal operation 0001 This bit combination is reserved and should not be used 0010 This bit combination is reserved and should not be used 0011 This bit combination is reserved and should not be used 0100 For an XPC access use MBOLCR independent of Bank Select Address 0101 For XPC access use MBILCR independent of Bank Select Address 0110 For an XPC access use MB2LCR independent of Bank Select Address 0111 For access use MB3LCR independent of Bank Select Address Rabbit 6000 User s Manual digi com 73 Memory Timing Control Register MTCR Address 0x0019 Bit s Value Description 7 4 These bits reserved and should be written with zeros 3 0 Normal timin
63. by the VBAT pin and so can be battery backed The value in the counter is not affected by reset and can only be set to zero by writing to the RTC control register The 48 bit width provides a 272 year span before rollover occurs There are two watchdog timers in the Rabbit 6000 both clocked by the 32 kHz clock The main watchdog timer can be set to time out from 250 ms to 2 seconds and resets the processor if not reloaded within that time Its purpose is to restart the processor when it detects that a program gets stuck or disabled The secondary watchdog timer can time out from 30 5 us up to 7 8 ms and generates a Priority 3 second ary watchdog interrupt when it is not reset within that time The primary use for the secondary watchdog is to act as a safety net for the periodic interrupt if the secondary watchdog is reloaded in the periodic interrupt it will count down to zero if the periodic interrupt stops occurring In addition it can be used as a periodic interrupt on its own The battery backed onchip encryption RAM consists of 32 bytes of memory that are powered by the VBAT pin note that this RAM is separate from the battery backed 32 KB SRAM Their values are not affected by a reset but are erased if the state of the SMODE pins changes These 32 bytes are intended for storing sensitive data such as an encryption key somewhere other than an external memory device The tamper protection erase feature erases these bytes if an atte
64. nal edges of the selected parallel port pins providing the ability to measure pulse widths and time intervals between external events time stamp signal changes on a pin and measure time intervals between a soft ware start and an external event In the input count mode the channel simply increments the counter each time the selected edge is detected The start condition is enabled by the first Timer A8 clock after the mode is selected and the stop condition is generated when the count matches the value written into the counter registers this allows an interrupt to be generated when a particular count is reached A latch records the value of a 16 bit counter when the event takes place The counter is driven by the out put of Timer 8 which is driven by Timer 12 and the Timer A prescaler If the counter rolls over to zero a register bit is set and an interrupt can be generated Two events are recognized a start condition and a stop condition The start condition may be used to start counting and the stop condition to stop counting However the counter may also run continuously or run until a stop condition is encountered The start and stop conditions may also be used to latch the current count at the instant the condition occurs rather than actually start or stop the counter The same pin may be used to detect the start and stop condition for example a rising edge could be the start condition and a falling edge could be the stop condition
65. nearby frequencies which reduces EMI and facilitates government mandated EMI testing Gated clocks are used whenever possible to avoid clocking unused portions of the processor and separate power supply pins for the core and 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 main clock can be doubled or divided by 2 4 6 or 8 to reduce EMI and power consumption The 32 kHz clock which can be divided by 2 4 8 or 16 can be used instead of the main clock to generate pro cessor and peripheral clocks as low as 2 kHz for significant power savings Note that dividing the 32 kHz clock only affects the processor and peripheral clocks the full 32 kHz signal is still provided to the real time clock and watchdog timer peripherals that use it directly The periodic interrupt is disabled automati cally since there is not enough time to process it when it is running off the 32 kHz clock Also note that the internal RAM content will not be maintained at CPU frequencies below 12MHz There is also a 25 MHz Ethernet oscillator that connects directly to the Ethernet PHY if you are using the Ethernet option but want a different main clock frequency See Chapter 25 for more details on the Ether net clock The Wi Fi peripheral requires a 20 MHz clock input which goes to a dedicated PLL to produce the required clocks for the 802 11a b g periphe
66. s Manual digi com 25 The maximum allowed clock speed must be reduced slightly if the clock is supplied via the clock doubler The only signals clocked on the falling edge of the clock are the memory and I O write pulses and the early option memory output enable See Chapter 5 for more information on the early output enable and write enable options The power consumption is proportional to the clock frequency and for this reason power can be reduced by slowing the clock when less computing activity is taking place The clock doubler provides a conve nient method of temporarily speeding up or slowing down the clock as part of a power management scheme 2 3 5 32 kHz Clock The 32 768 kHz clock is used to drive the asynchronous serial bootstrap the real time clock the periodic interrupt and the watchdog timers see Section 4 3 for detailed descriptions of these features If these fea tures are not used in a design the use of the 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 Rabbit s Technical Note TN235 External 32 768 kHz Oscillator Circuits is available on the Rabbit Web site and goes into this circuit in detail uel R1 and R2 control the power consumed by the unbuffer
67. the last byte of the last buffer will be written automatically to a special destination address to tag the data as the last in the frame without processor intervention However this function is not available in the case where the buffer contains only one byte of data If this case should occur the buffer descriptor must contain the special destination address All the DMA channels request interrupts at the same priority level which is set by a field in the DMA Master Control Register but each DMA channel has its own interrupt vector location This speeds up interrupt processing for the DMA interrupts by eliminating the need to resolve which DMA channel is actually requesting an interrupt DMA transfers may be programmed to occur at any priority level If the programmed level is greater than or equal to the current CPU operating level DMA transfers will occur on demand When the CPU operat ing level is greater than the programmed DMA operating level no DMA transfers can occur This allows interrupt services routines or other critical code to run with a guarantee that there will be no 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 Rabbit 6000 User s Manual digi com 251 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 al
68. 0 Bits 23 16 of the source address are stored in this register DMA y Destination Addr 7 0 Register DODAOR Address 0x0188 D1DAOR Address 0x0198 D2DAOR Address 0x01A8 D3DAOR Address 0x01B8 D4DAOR Address 0x01C8 D5DAOR Address 0x01D8 D6DAOR Address 0x01E8 D7DAOR Address 0x01F8 D8DAOR Address 0x0988 D9DAOR Address 0x0998 D10DAOR Address 0x09A8 D11DAOR Address z 0x09B8 D12DAOR Address 0x09C8 D13DAOR Address 0x09D8 D14DAOR Address 0x09E8 D15DAOR Address 0x09F8 Bit s Value Description 7 0 Bits 7 0 of the destination address are stored in this register Rabbit 6000 User s Manual digi com 281 DMA y Destination Addr 15 8 Register DODA1R Address 0x0189 D1DA1R Address 0x0199 D2DA1R Address 0x01A9 D3DA1R Address 0x01B9 D4DA1R Address 0x01C9 D5DA1R Address 0x01D9 D6DA1R Address 0x01E9 D7DA1R Address 0x01F9 D8DA1R Address 0x0989 D9DA1R Address 0x0999 D10DA1R Address 0 09 9 D11DA1R Address 0x09B9 D12DA1R Address 0x09C9 D13DA1R Address 0x09D9 D14DA1R Address 0 09 9 D15DA1R Address 0x09F9 Bit s Value Description 7 0 Bits 15 8 of the destination address are stored in this register DMA y Destination Addr 23 16 Register DODA2R Address 0x018A D1DA2R Address
69. 0 alternate output 2 TIMER 11 Parallel Port H bit 0 alternate output 3 TCLKF Rabbit 6000 User s Manual digi com 158 Parallel Port H Alternate High Register PHAHR Address 0x0033 Bit s Value Description 7 6 00 This value is reserved and must not be used 01 Parallel Port H bit 7 alternate output 1 17 10 Parallel Port H bit 7 alternate output 2 PWM3 11 Parallel Port H bit 7 alternate output 3 SCLKC 5 4 00 This value is reserved and must not be used 01 Parallel Port H bit 6 alternate output 1 I6 10 Parallel Port H bit 6 alternate output 2 PWM2 11 Parallel Port H bit 6 alternate output 3 TXE 3 2 00 This value is reserved and must not be used 01 Parallel Port H bit 5 alternate output 1 I5 10 Parallel Port H bit 5 alternate output 2 PWM1 11 Parallel Port H bit 5 alternate output 3 RCLKE 1 0 00 This value is reserved and must not be used 01 Parallel Port H bit 4 alternate output 1 I4 10 Parallel Port H bit 4 alternate output 2 PWMO 11 Parallel Port H bit 4 alternate output 3 TCLKE Parallel Port H Function Register PHFR Address z 0x0035 Bit s Value Description 7 0 0 The corresponding port bit functions normally 1 The corresponding port bit carries its alternate signal as an output See Table 15 1 Parallel Port H Drive Control Register PHDCR Address 0x0036 Bit s
70. 01 Parallel Port C bit 7 alternate output 1 17 10 Parallel Port C bit 7 alternate output 2 3 11 Parallel Port C bit 7 alternate output 3 SCLKC 5 4 00 Parallel Port C bit 6 alternate output 0 TXA 01 Parallel Port C bit 6 alternate output 1 16 10 Parallel Port C bit 6 alternate output 2 PWM2 11 Parallel Port C bit 6 alternate output 3 TXE 3 2 00 Parallel Port C bit 5 alternate output 0 TXB 01 Parallel Port C bit 5 alternate output 1 I5 10 Parallel Port C bit 5 alternate output 2 1 11 Parallel Port C bit 5 alternate output 3 RCLKE 1 0 00 Parallel Port C bit 4 alternate output 0 TXB 01 Parallel Port C bit 4 alternate output 1 I4 10 Parallel Port C bit 4 alternate output 2 11 Parallel Port C bit 4 alternate output 3 TCLKE Parallel Port C Drive Conirol Register PCDCR Address 0x0054 Bit s Value Description 7 0 0 The corresponding port bit as an output is driven high and low 1 The corresponding port bit as an output is open drain Parallel Port C Function Register PCFR Address 0x0055 Bit s Value Description 7 0 0 The corresponding port bit functions normally 1 The corresponding port bit carries its alternate signal as an output See Table 10 1 Rabbit 6000 User s Manual digi com 111 Parallel Port Cx Control Register PCOCR Address 0x04D0 PC1CR Address 0x04D1 PC2CR Address 0x04D2 PC3CR
71. 0x019A D2DA2R Address 0x01AA D3DA2R Address 0x01BA D4DA2R Address 0x01CA D5DA2R Address 0x01DA D6DA2R Address 0x01EA D7DA2R Address 0x01FA D8DA2R Address 0x098A D9DA2R Address 0x099A D10DA2R Address 0x09AA D11DA2R Address 0x09BA D12DA2R Address 0x09CA D13DA2R Address 0x09DA D14DA2R Address 0x09EA D15DA2R Address 0x09FA Bit s Value Description 7 0 Bits 23 16 of the destination address are stored in this register Rabbit 6000 User s Manual digi com 282 DMA y Link Addr 7 0 Register DOLAOR Address 0x018C D1LAOR Address 0x019C D2LAOR Address 0x01AC D3LAOR Address 0x01BC DALAOR Address 0x01CC D5LAOR Address 0x01DC D6LAOR Address 0x01EC D7LAOR Address 0x01FC D8LAOR Address 0x098C D9LAOR Address 0x099C D10LAOR Address 0x09AC D11LAOR Address 0x09BC D12LAOR Address 0x09CC 0131 Address 0x09DC 0141 Address 0x09EC D15LAOR Address 0x09FC Bit s Value Description 7 0 Bits 7 0 of the link address are stored in this register DMA y Link Addr 15 8 Register DOLA1R Address 0x018D D1LA1R Address 0x019D D2LA1R Address 0x01AD D3LA1R Address 0x01BD D4LA1R Address 0x01CD D5LA1R Address 0x01DD D6LA1R Address 0x01ED D7LA1R Address 0x01FD D8LA1R A
72. 1 Short Chip Select timing for write cycles not available in full speed 000 The 32KHz clock divider is disabled 001 This bit combination is reserved and should not be used 010 This bit combination is reserved and should not be used 011 This bit combination is reserved and should not be used Mm 100 32KHz clock divided by two 16 384KHz 101 32KHz clock divided by four 8 192KHz 110 32KHz clock divided by eight 4 096KHz 111 32KHz clock divided by sixteen 2 048KHz Rabbit 6000 User s Manual digi com 414 Global Clock Double Register GCDR Address 0x000F Bit s Value Description 0 Disable system PLL 7 1 Enable system PLL Setting this bit does not select the system PLL as the clock source 6 5 These bits are reserved and should always be written with zeros 00000 The clock doubler circuit is disabled 00001 9 nS nominal Low time 00010 10 5 nS nominal Low time 00011 12 nS nominal Low time 00100 13 5 nS nominal Low time 00101 15 nS nominal Low time 00110 16 5 nS nominal Low time 00111 18 nS nominal Low time 01000 19 5 nS nominal Low time 01001 21 ns nominal Low time 01010 22 5 ns nominal Low time 01011 24 ns nominal Low time 01100 25 5 ns nominal Low time 01101 27 ns nominal Low time 01110 28 5 ns nominal Low time 01111 30 ns nominal Low time 10001 4 5 nS nominal Low time 1001
73. 11 Slave port interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 99 9 PARALLEL PORT B 9 1 Overview Parallel Port B is a byte wide port with each bit programmable for direction The Parallel Port B pins are also used to access other peripherals on the chip the slave port the auxiliary I O address bus and clock for clocked serial mode option for Serial Ports A and The Slave Port Control Register SPCR is used to configure how Parallel Port B is used when selecting the slave port or the external I O bus modes When the slave port is enabled either under program control or during parallel bootstrap Parallel Port B pins carry the Slave Attention output signal and the Slave Read strobe Slave Write strobe and Slave Address inputs The Slave Chip Select can also be programmed to come from a Parallel Port B pin When the external I O bus option is enabled either six or eight pins carry the external I O address signals selected in SPCR Two pins are used for the clocks for Serial Ports A and B when they are configured for the clocked serial mode These two inputs can be used as clock outputs for these ports if selected in the respective serial port control registers Note that when enabled the clocked serial output overrides all other programming for the two relevant Parallel Port B pins The drive strength and slew rate can be individually controlled for each Parallel Port B pin In addition
74. 13 14 15 16 17 18 19 20 13 12 11 10 9 o o o o 15 00 0 10 o0000000000 0000000 O lt lt 4 gt D E F G H J K L M N P R T u w Y 15 00 0 10 0 25 0 35 Figure 38 3 a BGA 292 Package Outline Rabbit 6000 User s Manual digi com 431 TOP VIEW BOTTOM VIEW 5 6 7 8 9 10 11 12 13 14 15 16 17 10 OOOQOQOP 00 00 000000 oj o0o0o00O0 00 00000000 Os gt gt D F H J O 8 K gt L N R T 15 00 0 10 Ball Pitch 0 80 mm Ball Diameter 0 40 mm 0 25 0 35 Figure 38 4 b BGA 233 Package Outline Table 38 1 Ball and Land Size Dimensions Nominal Ball Tolerance Ball Pitch Nominal Land Land Diameter Variation Diameter Variation mm mm mm mm mm 0 40 0 45 0 35 0 80 0 35 0 35 0 30 design considerations Table 38 2 are based on 5 mil design rules and assume single conductor between solder lands Table 38 2 Desig
75. 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 15 2 4 Interrupts There are no interrupts associated with Parallel Port H Rabbit 6000 User s Manual digi com 156 15 3 Operation The following steps must be taken before using Parallel Port H 1 Select the desired input output direction for each pin via PHDDR 2 Select high low or open drain functionality for outputs via PHDCR Ifa particular drive strength slew rate or pullup down status is desired for a Parallel Port H pin set that in the appropriate PHxCR 4 If an alternative peripheral output function is desired for a pin select it via PHALR or PHAHR and then enable it via Refer to the appropriate peripheral chapter for further use of that pin All these settings will be superseded if a 16 bit memory interface is selected since Parallel Port H is used for the upper half of the data bus in that mode Once Parallel Port is set up data can be read or written by accessing PHDR The value of an output pin read in from PHDR will reflect its current output value but any value written to an input pin will not appear on that pin until that pin becomes an output 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 s
76. 2 Register 3 NCC2R3 0x0A2F R W 00001000 Network Port C AES FIFO Register NCAFR 0x0A30 Network Port AES Mode Register NCAMR 0x0A38 R W 00000000 Network Port C Output Control Register 0 NCOCRO Ox0A3C R W 00000001 Network Port C Output Control Register 1 NCOCRI 0x0A3D R W 00000000 Network Port C Output Control Register 2 NCOCR2 00000000 Network Port Output Control Register 3 NCOCR3 00000000 Network Port Station ID x Register NCSTAIDxR 1 Network Port BSS ID x Register NCBSSIDxR 2 Network Port OFDM Basic Rate Set Register 0x0A50 Network Port PSK Basic Rate Set Register NCPSKBRSR 0x0A51 Network Port C SSID Length Register NCSSIDLR 0x0A53 Network Port Backoff 0 Register NCBOOR 0x0A56 R W XXXXXXXX Network Port C Backoff 1 Register NCBOIR 0x0A57 R W XXXXXXXX Network Port C DTIM Period Register NCDTIMPR 0x0A58 Network Port C CFP Period Register NCCFPPR 0x0A59 Network Port C Listen Interval 0 Register NCLIOR 0x0A5A Network Port Listen Interval 1 Register NCLIIR 0 0 58 Network Port C Beacon Interval 0 Register NCBIOR 0 0 5 R W Network Port C Beacon Interval 1 Register NCBIIR 0 0 50 R W
77. 25 MHz 150 MHz 300 MHz 01100 0001 25 MHz 200 MHz 400 MHz xxx 10000 xxxx0001 48 MHz 156 MHz 312 MHz xxx01101 xxxx0010 48 MHz 192 MHz 384 MHz xxx 10000 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 Rabbit 6000 User s Manual digi com 21 2 3 3 Spectrum Spreader When enabled the spectrum spreader stretches and compresses the main clock in a complex pattern that spreads the energy of the clock harmonics over a wider range of frequencies Note that the spectrum spreader cannot operate at frequencies above 115 MHz as it uses up too much of the available clock period so care must be exercised when using the main PLL Spectrum Spreader Disabled Spectrum Spreader Enabled normal nw 1 m AMPLITUDE dB 40 50 400 405 410 415 420 425 430 435 440 445 FREQUENCY MHz Figure 2 1 Effects of Spectrum Spreader There are three settings that correspond to normal and strong spreading the 0 50 MHz and gt 50 MHz main clock range Each setting will affect the clock cycle differently the maximum cycle shortening at 1 8 and 25 C is shown in Table 2 4 below Table 2 4 Spectrum Spreader Settings GCMOR ae Max Cycle 0 50 MHz 50 150 MHz Value Description Shortening Normal spreading of frequencies over 50 MHz zm
78. 458
79. 59 5 2 Dependencies 5 2 1 I O Pins There are three chip select pins 50 CS1 and CS2 two read strobes and OE1 and two write strobes WEO and WEI CS3 is available to the internal SRAMs only and does not come out to a pin There are 16 dedicated data bus pins DO through D15 and 25 dedicated address pins AO through A23 and A0 to allow byte access to 16 bit devices If the SYSCFG pin is held high on startup the Memory Bank 0 Control Register and Memory Bank 0 Low Control Register are set to a particular value that maps to the internal SRAM See Section 5 3 1 for more details The drive strength and slew rate are selectable for the address and data bus pins and for the memory strobe pins except CS1 via ADPCR DBPCR and CPCR CS1 has a fixed setting of 8 mA drive and fast slew Internal pullup and or pulldown resistors are also selectable on the data bus 5 2 2 Clocks All memory operations are clocked by the processor clock 5 2 3 Interrupts When a write is attempted to a write protected 64 KB or 4 KB block a write protection violation interrupt is generated The interrupt request is cleared when it is handled The write protection violation interrupt vector is in the IIR at offset 0x090 It is always set to Priority 3 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 st
80. 6000 User s Manual digi com 241 23 3 Dependencies 23 3 1 I O Pins The A D converter is physically separated from the multiplexer on the chip The multiplexer accepts inputs on pins IN7 INO and outputs the selected channel on MUXOUT The A D converter accepts input on VIN If desired conditioning circuitry can be placed between MUXOUT and VIN or they can simply be connected directly External voltage references can be used with the multiplexed A D converter if enabled they should be supplied on REF and REF The PD4 pin can be used as a clock input instead of the peripheral clock 23 3 2 Clocks 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 Rabbit 6000 User s Manual digi com 242 23 4 Operation 23 4 1 Single Reading The following steps must be taken to operate the multiplexed A D converter in the single read mode 1 Select the clock source and enable the multiplexed A D converter by writing to ADCCR 2 Select the multiplexer channel and desired reference in ADCCSR but do not start the conversion yet This provides greater settle time for the multiplexer switchover 3 Enable a conversion by setting bit 0 of ADCCSR 4 Wait for the conversion to complete by monitoring bit
81. 7 0 Read converter are returned Write Writes to this register are ignored Rabbit 6000 User s Manual digi com 238 Analog Component 2 Control Register A2CR Address 0x0824 Bit s Value Description 7 0 Use peripheral clock as slow A D converter clock source 1 Use Parallel Port PD6 as slow A D converter clock source 6 4 000 Clock divided by 2 001 Clock divided by 4 010 Clock divided by 8 011 Clock divided by 16 100 Clock divided by 32 101 Clock divided by 64 110 Clock divided by 128 111 Clock divided by 256 3 0 Conversion not complete pend 1 Conversion complete 2 0 No effect on slow A D converter 1 Start conversion 1 This bit is reserved and should be written as zero 0 0 Slow A D converter in sleep mode 1 Slow A D converter active Rabbit 6000 User s Manual digi com 239 23 ANALOG DIGITAL CONVERTER 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 actual conversion rates depend on the clock sources used each analog component can accept clock from an external I O pin or divide the peripheral clock by a value between 2 and 256 The Rabbit 6000 also has a 11 bit single channel A D converter
82. Bit s Value Description 7 3 These bits are reserved should be written with zeros 2 0 No reset of Flexible Interface Module B Reads always return zero wr only 1 Reset Flexible Interface Module B This bit holds FIMB in Reset while set 1 This bit is reserved and should be written with zero 0 0 no reset of Flexible Interface Module A Reads always return zero wr only 1 Reset Flexible interface Module A This bit holds FIMA in Reset while set Rabbit 6000 User s Manual digi com 381 Master Override Control Register POCR Address 0x0438 Bit s Value Description 7 0 Normal operation for Port H 1 Override Port H operation FIM A or FIM B controls the port 6 0 Normal operation for Port 1 Override Port G operation FIM A or FIM B controls the port 5 0 Normal operation for Port 1 Override Port F operation FIM A or FIM B controls the port 4 0 Normal operation for Port E 1 Override Port E operation FIM A or FIM B controls the port 3 0 Normal operation for Port D 1 Override Port D operation FIM A or FIM B controls the port 2 0 Normal operation for Port C 1 Override Port C operation FIM A or FIM B controls the port 1 0 Normal operation for Port 1 Override Port B operation FIM A or FIM B controls the port 0 0 Normal operation for Port A 1 Override Port A operation FIM A or FIM B controls the port Rabbit 6000 User s Ma
83. D3BCR Address 0x0133 D4BCR Address 0x0143 D5BCR Address 0x0153 D6BCR Address 0x0163 D7BCR Address 0x0173 D8BCR Address 0x0903 09 Address 0x0913 D10BCR Address 0x0923 D11BCR Address 0x0933 D12BCR Address 0x0943 D13BCR Address 0x0953 D14BCR Address 0x0963 D15BCR Address 0x0973 Bit s Value Description The DMA increments a counter at the start of each buffer This count is latched in this register and can be used along with the buffer unused 7 0 Read count to determine the actual amount of data transferred by the DMA This counter is initialized by a start command or when the DMA is automatically rewound to the initial address Writing to this register loads the counter This feature is intended only for Write testing because the DMA automatically resets the counter to all ones when fetching from the initial address The counter is incremented whenever the DMA fetches a new buffer length value from a descriptor DMA Masier Conirol Register DMCR Address 0x0104 Bit s Value Description 7 4 These bits reserved and should be written with zeros DMA transfers at Priority 0 No DMA transfers while CPU operates at 3 2 00 Priority 3 2 or 1 01 DMA transfers at Priority 1 No DMA transfers while CPU operates at Priority 3 or 2 10 DMA transfers at Priority 2 No DMA transfers while CPU operate
84. D3LOR Address 0x01B2 D4LOR Address 0x01C2 D5LOR Address 0x01D2 D6LOR Address 0x01E2 D7LOR Address 0 01 2 D8LOR Address 0x0982 D9LOR Address 0x0992 D10LOR Address 0x09A2 01110 Address 0x09B2 01210 Address 0x09C2 D13LOR Address z 0x09D2 D14LOR Address 0x09E2 D15LOR Address 0 09 2 Bit s Value Description 7 0 Bits 7 0 of the buffer length value are stored in this register DMA y Length 15 8 Register DOL1R Address 0x0183 D1L1R Address 0x0193 D2L1R Address 0x01A3 D3L1R Address 0x01B3 D4L1R Address 0x01C3 D5L1R Address 0x01D3 D6L1R Address 0x01E3 D7L1R Address 0x01F3 D8L1R Address 0x0983 D9L1R Address 0x0993 D10L1R Address 0x09A3 D11L1R Address 0x09B3 D12L1R Address 0x09C3 D13L1R Address 0x09D3 D14L1R Address 0x09E3 D15L1R Address 0x09F3 Bit s Value Description 7 0 Bits 15 8 of the buffer length value are stored in this register Rabbit 6000 User s Manual digi com 279 DMA y Source Addr 7 0 Register DOSAOR Address 0x0184 015 Address 0 0194 D2SAOR Address 0x01A4 D3SAOR Address 0x01B4 045 Address 0x01C4 D5SAOR Address 0x01D4 D6SAOR Address 0x01E4 D7SAOR Address 0x01F4 D8SAOR Address 0x0984 D9SAOR Address 0x0994 D10SAOR A
85. External interrupts can be accepted from any pin on Parallel Port F see Chapter 7 for more details 13 3 Operation The following steps must be taken before using Parallel Port F 1 Select the desired input output direction for each pin via PFDDR 2 Select high low or open drain functionality for outputs via PFDCR 3 If a particular drive strength slew rate or pullup down status is desired for a Parallel Port F pin set that in the appropriate PFxCR 4 If an alternative peripheral output function is desired for a pin select it via PFALR or PFAHR and then enable it via PFFR Refer to the appropriate peripheral chapter for further use of that pin Once the port is set up data can be read or written by accessing PFDR Read PFDR to learn the current state of a Parallel Port F pin any value written to an input pin will not appear on that pin until that pin becomes an output It is possible to enable a Flexible Interface Module to override Parallel Port F which is a different option than the alternate output selection of the FIMA interface If one of the Flexible Interface Modules has been enabled to override 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 Rabbit 6000 User s Manual digi com 140 13 4 Register Descriptions
86. MSB 2 Register PWM2R 0x008D PWM LSB 3 Register PWL3R 0 008 xxxxx00x PWM MSB 3 Register PWM3R 0 008 PWM Block Access Register PWBAR 0 00 8 w XXXXXXXX PWM Block Pointer Register PWBPR 0 00 9 w 10001000 Rabbit 6000 User s Manual digi com 343 30 2 Dependencies 30 2 1 I O Pins Each PWM channel can be output on up one of three pins which can be selected via the parallel port alter nate output registers PWM Output Pins Channel 0 PC4 PD4 PE4 PF4 PG4 PH4 Channel 1 5 PDS PES PF5 PGS PH5 Channel 2 Channel 3 PC6 PD6 PE6 PF6 PG6 PH6 PC7 PD7 PE7 PF7 PG7 PH7 30 2 2 Clocks The PWM counter is clocked from the output of Timer A9 which can use both Timer 12 TAT12R and the Timer A prescaler TAPR as prescalers See 16 1 1 Block Diagram for details 30 2 3 Other Registers Register Function TATOR Time constant for PWM clock TAT12R Optional predivider for Timers A8 11 TAECR Enable for Timer A12 prescaling TAPR Timer A prescaler PCFR PCAHR PDFR PDAHR PEFR PEAHR Alternate port output selection PFFR PFAHR PGFR PGAHR PHFR PHAHR 30 2 4 Interrupts The PWM can generate an interrupt for every PWM counter rollover every second rollover every fourth rollover or every eighth rollover This option is selected in PWLI1R
87. Parallel Port Bx Control Register PBOCR Address 0 04 0 PB1CR Address 0x04C1 PB2CR Address 0x04C2 PB3CR Address 0x04C3 PB4CR Address 0x04C4 PB5CR Address 0x04C5 PB6CR Address 0x04C6 PB7CR Address 0x04C7 Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 3 2 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 00 No pullup or pulldown resistor 01 75 pullup resistor 10 75 pulldown resistor 11 75 keeper Rabbit 6000 User s Manual digi com 104 Slave Port Control Register SPCR Address 0x0024 Bit s Value Description 7 0 Program fetch as a function of the SMODE pins 1 Ignore the SMODE pins program fetch function 6 5 Read These bits report the state of the SMODE pins Write These bits are ignored and should be written with zero 4 2 000 Disable the slave port Parallel Port A is a byte wide input port 001 Disable the slave port Parallel Port A is a byte wide output port 010 Enable the slave port with SCS from Parallel Port E bit 7 011 Enable the external vO bus Parallel Port A is used for the data bus and Parallel Port B 7 2 is used for the address bus 100 This bit combination is reserved and should not be used 101
88. Port C used for Start condition input 01 Parallel Port D used for Start condition input 10 Parallel Port E used for Start condition input 11 This bit combination is reserved and should not be used 5 4 00 Use port bit 1 for Start condition input 01 Use port bit 3 for Start condition input 10 Use port bit 5 for Start condition input 11 Use port bit 7 for Start condition input 3 2 00 Parallel Port C used for Stop condition input 01 Parallel Port D used for Stop condition input 10 Parallel Port E used for Stop condition input 11 This bit combination is reserved and should not be used 1 0 00 Use port bit 1 for Stop condition input 01 Use port bit 3 for Stop condition input 10 Use port bit 5 for Stop condition input 11 Use port bit 7 for Stop condition input ICL1R ICL2R Input Capture LSB x Register Address 0x005A Address 0x005E Bit s Value Description 7 0 Read The least significant eight bits of the latched Input Capture count are returned Reading the LSB of the count latches the MSB of the count to avoid reading stale data Reading the MSB of the count opens these latches on the 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 Rabbit 6000 User s Manual digi com 331 Input Capture MSB x Regis
89. R W 00000000 ECC Control Register ECCR 0x05C4 R W 00000000 ECC CP Read Register ECPR 0x05C4 R W 00000000 ECC CP Read Shifted Register ECPSR 0x05C6 R W 00000000 ECC Write 0 Register ECW0R 0x05C7 R W 00000000 ECC Write 1 Register ECWIR 0 05 8 00000000 ECC Write 2 Register ECW2R 0 05 9 00000000 ECC Write 3 Register ECW3R 0 05 00000000 ECC Count 0 Register ECCOR 0 05 00000000 ECC Count 1 Register ECCIR 0 05 00000000 Rabbit 6000 User s Manual digi com 384 34 2 Dependencies 34 2 1 I O Pins There are no I O pins associated with the Error Check and Correction peripheral 34 2 2 Clocks There are no clocks associated with the Error Check and Correction peripheral 34 2 3 Other Registers There are no other registers associated with the Error Check and Correction peripheral 34 3 Operation Before starting an operation clear the internal counter by writing a 0 and then a 1 to bit 7 of ECCR The internal counter will not be cleared until this is done 34 3 1 ECC The following steps must be taken to perform Error Check and Correction calculations 1 Enable the ECC peripheral and select the Error Check and Correction peripheral by writing to ECCR Select the initial value and read data direction if desired 2 If desired the initial state of the line parity bits can be set by writing to ECWxR and the column parity bits by writing to ECPR or ECPSR
90. Rabbit 6000 User s Manual digi com 425 Table 37 8 Some Recommended Clock Memory Configurations Input Frequency Internal Frequency Recommended Memory Timing Optimal Use MHz MHz 29 4912 55 ns 0 wait states 14 7456 4 doubler 70 ns 1 wait state 55 ns devices Rabbit 6000 User s Manual digi com 426 37 5 Power and Current Consumption Several mechanisms contribute to the current consumption of the Rabbit 6000 processor while it is operat ing Current that is proportional to the voltage alone is due to the power consumption of the internal logic The other current draw component is dependent on both voltage and frequency Since the operating volt age is fixed the primary way to reduce current consumption is by reducing the clock speed by either adjusting or disabling the PLL dividing the main clock or running off the 32kHz oscillator See Table 36 2 for more details The Ethernet and Wi Fi peripherals in particular can draw a significant amount of current when powered as shown in 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 consum
91. Registers Register Name Mnemonic I O Address R W Reset 0x0080 or w Bank 0 Control Register IBOCR 0x0450 R W 00000000 Bank 0 Extended Register IBOER 0x0451 00000000 0x0081 or w Bank 1 trol Regist IBICR 00000000 Bank 1 Control Register 0 0452 R W Bank 1 Extended Register IBIER 0x0453 R W 00000000 0x0082 or w Bank 2 Control Register IB2CR 0 0454 R W 00000000 Bank 2 Extended Register IB2ER 0 0455 00000000 0x0083 or w Bank trol Regist IB3CR 00000000 O Bank 3 Control Register 3C 0x0456 R W Bank 3 Extended Register IB3ER 0x0457 R W 00000000 0x0084 or w Bank 4 Control Register IB4CR 0x0458 R W 00000000 Bank 4 Extended Register IB4ER 0x0459 R W 00000000 Bank 5 Control Regist IB5CR 0x0085 or W 00000000 an ontrol Register 0x045A R W Bank 5 Extended Register 5 0 045 00000000 0 0086 w Bank 6 Control Register IB6CR 0 045 R W 00000000 Bank 6 Extended Register IB6ER 0x045D 00000000 Bank 7 Control Regist IB7CR 0x0087or W 00000000 an ontrol Register 0 045 R W Bank 7 Extended Register IB7ER 0 045 00000000 Handshake Control Register 0 0028 00000000 Handshake Select Register 5 0 0029 00000000 Handshake Timeout Register 0 002 00000000 Bank
92. S AD REF reference voltage monitors VBG Bandgap voltage unused Bias resistor for Wi Fi A D AD_RSET converter 12 1 to ground optimal Bias Bias resistor for Wi Fi D A DA_RSET converter 9 1 to ground optimal COMP Connect to Wi Fi 2 5V Rabbit 6000 User s Manual digi com 313 Table 26 1 Wireless Port Interface Block Section Signal Direction Function Auto Gain VGA 4 0 Output Variable gain amplifier setting Correction LNA 1 0 Output Linear amplifier setting TXON Output Transmit enable RXON Output Receive enable LOCK Input Transceiver PLL lock input Reserved for future use may be used as a general purpose output Digital Control ANTI Output Antenna select enable ANT2 Output Antenna select enable PA2G_ON Output 2G preamplifier enable 5 Output 5G preamplifier enable ACT_LED Output Activity LED control active low SCLK Output 3 wire serial clock Management SDATA Output 3 wire serial data SEN Output 3 wire serial enable 26 3 Clocks The wireless network port requires a 20 MHz clock input for proper operation An external crystal can be attached between the XTL_20MI and XTL_20MO pins or a 20 MHz clock can be applied directly to XTL_20MO Note that the proper clock operation crystal or external signal needs to be enabled in MSSR The absolute lower limit for
93. Serial Port Divider Low Register SCDLR 0 00 6 Serial Port Divider High Register SCDHR 0 00 7 Serial Port D Data Register SDDR 0 00 0 Serial Port D Address Register SDAR 0x00F1 w XXXXXXXX Serial Port D Long Stop Register SDLR 0x00F2 w XXXXXXXX Serial Port D Status Register SDSR 0x00F3 R 0xx00000 Serial Port D Control Register SDCR 0x00F4 R W xx000000 Serial Port D Extended Register SDER 0 00 5 00000000 Serial Port D Divider Low Register SDDLR 0 00 6 Serial Port D Divider High Register SDDHR 0 00 7 Rabbit 6000 User s Manual digi com 187 19 2 Dependencies 19 2 1 I O Pins Serial Port A can transmit on parallel port pins PC7 PC6 or PD6 and can receive on pins PC7 PD7 or If the clocked serial mode is enabled the serial clock is either transmitted or received on When an internal clock is selected in the clocked serial mode PB1 is automatically enabled as a clock output Serial Port can transmit on parallel port pins PC5 PC4 or PD4 and can receive on pins PC5 PDS or PES If the clocked serial mode is enabled the serial clock is either transmitted or received on PBO When an internal clock is selected in the clocked serial mode PBO is automatically enabled as a clock output Serial Port C can transmit on parallel port pins PC3 or PC2
94. The input capture interrupt vector is in the IIR at offset 0x1A0 It can be set as Priority 1 2 or 3 The input capture channels synchronize their inputs to Timer A8 so any faster state changes cannot be detected due to the digital low pass filter functionality on the inputs 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 erco LE LT LI LEU UL UT UT TIMER A8 j CPT INPUT INTERRUPT Rabbit 6000 User s Manual digi com 325 28 3 Operation 28 3 1 Input Capture Channel The following steps explain how to set up an input capture channel 1 Configure Timer A8 via TAT8R and optionally TAT12R to provide the desired input capture clock 2 Configure ICTxR to provide the desired start stop operation and conditions 3 Configure ICSxR to select the input pins for the start and stop conditions 4 Configure ICCR to select either the count or the capture mode 5 Reset the counter by writing to ICCSR 28 3 2 Handling Interrupts The following steps explain how an interrupt is used 1 Write the vector to the interrupt service routine to the internal interrupt table 2 Configure the Input Capture Control Status Register ICCSR to select events that will generate an interrupt 3 Configure the Input Capture Control Register ICCR
95. 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 PWLOR Rabbit 6000 User s Manual digi com 344 30 3 Operation The following steps explain how to set up a PWM channel 1 Configure Timer A9 via TAT9R to provide the desired PWM clock frequency 2 Configure PWLxR to select whether to spread the PWM output throughout the cycle 3 Configure PWLXR to select whether to suppress the PWM output 4 Configure the duty cycle by writing to PWLxR and PWMXR Note that any changes to these regis ters while the PWM is active will not take effect until the next counter rollover 30 3 1 Handling Interrupts The following steps explain how an interrupt is set up and used 1 Write the vector to the interrupt service routine to the internal interrupt table 2 Configure PWLOR to select the PWM interrupt priority and PWLIR to select PWM interrupt sup pression if an interrupt is desired The following actions occur within the interrupt service routine Any PWM values may be updated The interrupt request is cleared by writing to any PWM register 30 3 2 Example ISR A sample interrupt handler is shown below pwm isr push af Save used registers load next PWM value into HL here ioi ld PWLOR hl update the PWM value in PWLOR and PWMOR note that interrupt request is also
96. The interrupt request is cleared by reading from TBCSR 17 3 2 Example ISR A sample interrupt handler is shown below timerB_isr push af save used registers lda 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 ret Rabbit 6000 User s Manual digi com 172 17 4 Register Descriptions Timer B Control Status Register TBCSR Address 0 00 0 Bit s Value Description 7 3 These bits always read as zero 241 0 corresponding Timer B comparator has not encountered a match condition Read The corresponding Timer B comparator has encountered a match only 1 condition These status bits but not the interrupt enable bits are cleared by the read of this register as is the Timer B interrupt 2 1 0 The corresponding Timer B interrupt is disabled 2 1 The corresponding Timer interrupt is enabled 0 0 The clock input for Timer B is disabled 1 The clock input for Timer B is enabled Timer B Control Register TBCR Address 0x00B1 Bit s Value Description 7 6 These bits are reserved and should be written with zero 5 0 Normal Timer B2 operation using the match registers 1 Enable Timer B2 to use the step registers to calculate match values 4 0 Normal Timer B1 operation using the
97. This bit combination is reserved and should not be used 110 Enable the slave port with SCS from Parallel Port B bit 6 111 Enable the external vO bus Parallel Port A is used for the data bus and Parallel Port B 7 0 is used for the address bus 1 0 00 Slave port interrupts are disabled 01 Slave port interrupts use Interrupt Priority 1 10 Slave port interrupts use Interrupt Priority 2 11 Slave port interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 105 10 PARALLEL PORT C 10 1 Overview Parallel Port C is a byte wide port with each bit programmable for data direction and drive level These are simple inputs and outputs controlled and reported in the Port C Data Register PCDR All the Parallel Port C pins have alternate output functions and most of them can be used as inputs to vari ous on chip peripherals The drive strength and slew rate can be individually controlled for each Parallel Port C pin In addition a 75 kQ pullup or pulldown resistor can be enabled on each pin Note that it is possible for either Flexible Interface Module to use any of the parallel ports See Chapter 33 for more information Table 10 1 Parallel Port C Pin Alternate Output Functions Pin Name Alt Out 0 Alt Out 1 Alt Out 2 Alt Out 3 PC7 TXA I7 PWM3 SCLKC PC6 TXA I6 PWM2 TXE PC5 TXB I5 PWMI RCLKE PC4 TXB H PWM0 TCLKE PC3 TXC TIMER C3 SCLKD PC2 TXC 12 TIMER C2 TXF TXD
98. Value Description 7 0 0 The corresponding port bit as an output is driven high and low 1 The corresponding port bit as an output is open drain Rabbit 6000 User s Manual digi com 159 Parallel Port H Data Direction Register PHDDR Address 0x0037 Bit s Value Description 7 0 0 The corresponding port bit is an input 1 The corresponding port bit is an output Parallel Port Hx Control Register PHOCR Address 0x04D8 PH1CR Address 0x04D9 PH2CR Address 0x04DA PH3CR Address 0x04DB PH4CR Address 0x04DC PH5CR Address 0x04DD PH6CR Address 0x04DE PH7CR Address 0x04DF Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 3 2 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 00 No pullup or pulldown resistor 01 75 KQ pullup resistor 10 75 KQ pulldown resistor 11 75 KQ keeper Rabbit 6000 User s Manual digi com 160 16 TIMER A 16 1 Overview The Timer A peripheral consists of 12 separate eight bit countdown timers A1 A12 Each counter counts down from a programmed time constant which is automatically reloaded into the respective counter when the count reaches zero For example if the reload register conta
99. Value Description 7 0 Read corresponding byte of the slave port is read Write The corresponding byte of the slave port is written Slave Port Status Register SPSR Address 0x0023 Bit s Value Description 7 0 Slave wrote to SPSR 1 Master wrote to Data Register 0 6 0 Slave port read byte 2 is empty 1 Slave port read byte 2 is full 5 0 Slave port read byte 1 is empty 1 Slave port read byte 1 is full 4 0 Slave port read byte 0 is empty 1 Slave port read byte 0 is full 3 0 Master wrote to SPSR 1 Slave wrote to SPDOR 2 0 Slave port write byte 2 is empty 1 Slave port write byte 2 is full 1 0 Slave port write byte 1 is empty 1 Slave port write byte 1 is full 0 0 Slave port write byte 0 is empty 1 Slave port write byte 0 is full Rabbit 6000 User s Manual digi com 225 Slave Port Control Register SPCR Address 0x0024 Bit s Value Description 7 0 Program fetch as a function of the SMODE pins 1 Ignore the SMODE pins program fetch function 6 5 Read These bits report the state of the SMODE pins Write These bits are ignored and should be written with zero 4 2 000 Disable the slave port Parallel Port A is a byte wide input port 001 Disable the slave port Parallel Port A is a byte wide output port 010 Enable the slave port with SCS from Parallel Port E bit 7 011 Enable the external vO bus Parallel Port A is used for the data bus and
100. a 10 bit two channel differential input A D converter and a 10 bit two channel differential output D A converter for 802 11 Wi Fi operation The Wi Fi analog features are available for customer use when Wi Fi is not being used see Chapter 22 for more information Table 23 1 lists the detailed features for the multiplexed A D converter Table 23 1 Multiplexed A D Converter Specifications Analog Component Feature Specification 12 bit Resolution accuracy is 11 if mux is used Max sample rate 1 megasample sec Clock 13MHz A D Input Range 0 07 V 3 23 V Dedicated A D converter with Mux Input Range OV 3 3V MUX Operating Current Active 5S mA 3 3 V Power down SpA Q 3 3 V Nonlinearity Differential DNL 0 8 LSB typ Integral INL 2 LSB typ Rabbit 6000 User s Manual digi com 240 23 2 Block Diagram Multiplexed A D Converter Multiplexed Interrupt V AID Converter Request i ADCLR ADCCSR ADCxLR ADCMR ADCCR ADCxMR 23 2 1 Registers Register Name Mnemonic 1 Address R W Reset ADC LSB Register ADCLR 0x0540 R 00000000 ADC MSB Register ADCMR 0x0541 R 00000000 ADC Command Status Register ADCCSR 0x0543 00000000 ADC Control Register ADCCR 0x0544 R W 00000000 ADC x LSB Register ADCxLR 0 0550 2 R 00000000 ADC x MSB Register ADCxMR 0 0551 2 x R 00000000 NOTE x Mux channel number 0 7 Rabbit
101. and writes When enabled the chip select signals will be the width of two undivided clocks and located at the end of the transaction 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 T1 T2 cua 1nnnnnnnnnnnnnnnnr a ex y 1 0 NY 7 Ni Divide by 8 Mode Divide by 6 Mode Rabbit 6000 User s Manual digi com 407 Divide by 4 Mode A 23 0 Divide by 2 Mode Rabbit 6000 User s Manual digi com When the processor is running off the 32 kHz clock the short chip select option will produce chip select signal that is the width of a single 32 kHz clock 30 5 us otherwise the timing is identical to the short chip select options based off the main oscillator Read strobe figures are shown below D 7 0 3 ICSx IOEx Operation at 2 kHz D 7 0 EE Cy ICSx Operation at 4 kHz Rabbit 6000 User s Manual digi com 409 A 25 0 01 0 ICSx d r ox i Operation at 8 kHz D 7 0 TL C ICSx IOEx Operation at 16 kHz Rabbit 6000 User s Manual digi com 410 D 7 0 ICSx IOEx Operation at 32 kHz Rabbit 6000 User s Manual digi com 411 36 2 5 Self Timed Chip Selects Self timed chip
102. bit 5 alternate output 0 IA6 01 Parallel Port D bit 5 alternate output 1 I5 10 Parallel Port D bit 5 alternate output 2 PWM1 11 Parallel Port D bit 5 alternate output 3 RCLKE 1 0 00 Parallel Port D bit 4 alternate output 0 TXB 01 Parallel Port D bit 4 alternate output 1 I4 10 Parallel Port D bit 4 alternate output 2 PWMO 11 Parallel Port D bit 4 alternate output 3 TCLKE Parallel Port D Control Register PDCR Address 0x0064 Bit s Value Description 7 6 These bits are ignored and should be written with zero 5 4 00 The upper nibble of the port transfer clock is perclk 2 01 The upper nibble of the port transfer clock is the output of Timer 1 10 The upper nibble of the port transfer clock is the output of Timer B1 11 The upper nibble of the port transfer clock is the output of Timer B2 3 2 These bits are ignored and should be written with zero 1 0 00 The lower nibble of the port transfer clock is perclk 2 01 The lower nibble of the port transfer clock is the output of Timer 1 10 The lower nibble of the port transfer clock is the output of Timer B1 11 The lower nibble of the port transfer clock is the output of Timer B2 Rabbit 6000 User s Manual digi com 120 Parallel Port D Function Register PDFR Address 0x0065 Bit s Value Description 7 0 0 The corresponding port bit functions normally 1 The corresponding p
103. detects a match Timer B Step MSB x Register TBSM1R Address 0x00BB TBSM2R Address 0x00BD Bit s Value Description 7 2 These bits are ignored but should be written with zeros Two MSBs of the step size for the Timer B comparator The new compare 1 0 value will be loaded into the actual comparator when the current compare detects a match Rabbit 6000 User s Manual digi com 174 Timer B Count MSB Register TBCMR Address 0x00BE Bit s Value Description 7 6 Read current value of the two MSBs of the Timer counter is reported 5 0 These bits are always read as zeros Timer Count LSB Register TBCLR Address OxOOBF Bit s Value Description 7 0 Read The current value of the eight LSBs of the Timer B counter is reported Rabbit 6000 User s Manual digi com 175 18 TIMER C 18 1 Overview The Timer C peripheral is a 16 bit up counter clocked by the peripheral clock divided by 2 by the periph eral clock divided by 16 or by the output of countdown Timers 1 or 11 The counter counts from zero to the limit programmed into the Timer C divider registers and then restarts at zero so the overall cycle count is the value in the divider registers plus one There are four Timer C outputs that are called Timers C0 C3 Each output is controlled by a 16 bit set value and a 16 bit reset value Each output is set to one w
104. ente tee 29 22 Clocks edente 29 2 3 Other Registers 29 2 4 Interrupts eene 29 3 Operation oit tiere eine 29 3 1 Handling Interrupts 29 3 2 Example ISR 29 4 Register Descriptions 30 Pulse Width Modulator 30 1 OVerVieW uu cess titre nrbt 30 1 1 Block Diagram 30 1 2 REGISTERS ceine eerie 30 2 Dependencies 30 2 1 WO PINS tts 30 22 Clocks tette 30 2 3 Other Registers 30 2 4 Tnt rrupts sette 30 3 Operation 30 3 1 Handling Interrupts 30 3 2 Example ISR 30 4 Register Descriptions 31 External I O Control OVeEVIGW a rere ren a rri 31 1 1 External I O Bus 31 1 2 WO Strobes 31 1 3 Handshake 31 1 4 Block Diagram 31 1 5 Registers csiis rores 31 2 Dependencies 22 222222 31 21 TO PinS a tenere ete ttes 3122 CIOGKS teneret 31 2 3 Other Registers 31 2 4 Interrupts 2 2 0222201 31 3 Operation iere 31 3
105. fast A D converter clock source 1 Use Parallel Port PD4 as fast A D converter clock source 6 4 000 Clock divided by 2 001 Clock divided by 4 010 Clock divided by 8 011 Clock divided by 16 100 Clock divided by 32 101 Clock divided by 64 110 Clock divided by 128 111 Clock divided by 256 3 2 These bits are reserved and should be written with zeros 1 0 00 Fast A D converter powered down 01 Fast A D converter in sleep mode 10 This bit combination is reserved and should not be used 11 Fast A D converter active Analog Component 1 I LSB Register A1ILR Address 0x0810 Analog Component 1 Q LSB Register A1QLR Address 0x0812 Bit s Value Description The two least significant bits for the fast D A converter are stored These 76 Write bits will not be transferred to the fast D A converter until the f corresponding MSB register is written to guarantee that the full 10 bits are valid Read These bits always return zeros when read 5 0 These bits are ignored and will always return zeros when read Rabbit 6000 User s Manual digi com 236 Analog Component 1 MSB Register A1IMR Address 0x0811 Analog Component 1 Q MSB Register A1QMR Address 0x0813 Bit s Value Description The eight most significant bits for the fast D A converter are stored Wale Writing these bits transfers the entire 10 bits to the fast D
106. fetch as a function of the SMODE pins 2 1 Ignore the SMODE pins program fetch function 6 5 Read These bits report the state of the SMODE pins 4 0 00000 identifier for this version of the chip Global RAM Configuration Register GRAM Address 0x002D Bit s Value Description 7 0 Program fetch as a function of the SMODE pins 1 Ignore the SMODE pins program fetch function 6 5 Read These bits report the state of the SMODE pins 4 0 00010 RAM identifier for this version of the chip Rabbit 6000 User s Manual digi com 51 Global Output Control Register GOCR Address 0x000E Bit s Value Description 7 6 00 CLK pin is driven with peripheral clock 01 CLK pin is driven with peripheral clock divided by 2 10 CLK pin is low 11 CLK pin is high 5 4 00 STATUS pin is active low during a first opcode byte fetch 01 STATUS is active low during an interrupt acknowledge 10 STATUS pin is low 11 STATUS pin is high 3 2 00 WDTOUT pin functions normally 01 Enable WDTOUT for test mode Reserved for internal use only 10 WDTOUT pin is low 1 cycle min 2 cycles max of 32 kHz 11 This bit combination is reserved and should not be used 1 0 00 BUFEN pin is active low during external I O cycles 01 BUFEN is active low during data memory accesses 10 BUFEN pin is low 11 BUFEN pin is high Global CPU Regi
107. func tion register and alternate output register PXALR or Select the appropriate mode by writing to SxCR receive input port and clock source Also select the interrupt priority Select additional options by writing to SxER data encoding idle line condition underrun behavior and combined or separate clocks Write the desired divider value to TATXR for the appropriate serial port or else write a divider to the dedicated 15 bit divider in SxDLR and SxDHR If the dedicated divider is to be used write a to the most significant bit of SxDHR to enable it In either case the overall clock divider will be the value in the appropriate register plus one To start transmission of a packet write the first byte to SxDR If internal clock is selected the transmission will begin immediately if an external clock is selected the transmission will begin when the clock is detected Continue writing bytes when space is available in the transmit buffer until the final byte of the packet If a CRC is to be appended to the packet write the final byte to SxAR If no CRC is required write the final byte to SxLR and just a closing flag will be appended If it is desirable to abort the current packet write 11 to bits 6 7 of SxCR and an abort pattern will be transmit ted The receiver will be synchronized on flag bytes and will reset the CRC By monitoring the received bytes decisions can be made about
108. interrupt enables are not affected 5 0 No transmit okay interrupt Read 1 only 1 Transmit okay interrupt 4 0 No transmit error interrupt Read 1 Transmit error interrupt only 3 0 No transmit pause interrupt 2 1 Transmit pause interrupt control frame complete 2 0 This bit is reserved and will always read as zero 1 0 00 The Network Port interrupt is disabled 01 The Network Port uses Interrupt Priority 1 10 The Network Port uses Interrupt Priority 2 11 The Network Port uses Interrupt Priority 3 Rabbit 6000 User s Manual digi com 296 Network Port Command Register NBCR Address 0x0206 Bit s Value Description 7 0 No operation 1 Transmit start command 6 0 No operation 1 Transmit PAUSE control frame command 5 0 No operation 1 Transmit half duplex backpressure 4 0 No operation 1 Transmit FIFO purge command 3 1 These bits are ignored and should always be written as zeros 0 0 No operation 1 Receive FIFO purge command Network Port B Transmit Pause LSB Register NBTPLR Address 0x0208 Bit s Value Description 7 0 LSB of parameter sent in PAUSE control frame Network Port B Transmit Pause MSB Register NBTPMR Address 0x0209 Bit s Value Description 7 0 MSB of parameter sent in PAUSE control frame Rabbit 6000 User s Manual digi com 297 Network Port B Transmit Control Register NBTC
109. is desired for a Parallel Port G pin set that in the appropriate PGxCR 4 If an alternative peripheral output function is desired for a pin select it via PGALR or PGAHR and then enable it via PGFR Refer to the appropriate peripheral chapter for further use of that pin Once the port is set up data can be read or written by accessing PGDR Read to learn the current state of a Parallel Port G pin any value written to an input pin will not appear on that pin until that pin becomes an output It is possible to enable a Flexible Interface Module to override Parallel Port G which is a different option than the alternate output selection of the FIMB interface If one of the Flexible Interface Modules has been enabled to override 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 Rabbit 6000 User s Manual digi com 148 14 4 Register Descriptions Parallel Port G Data Register PGDR Address 0x0048 Bit s Value Description 7 0 Read current state of Parallel Port G pins PG7 PGO is reported The Parallel Port G buffer is written with this value for transfer to the Write Parallel Port G output register on the next rising edge of the port transfer clock The port tra
110. match registers 1 Enable Timer B1 to use the step registers to calculate match values 3 2 00 Timer clocked perclk 2 01 Timer clocked by the output of Timer 1 10 Timer B clocked by the peripheral clock divided by 16 11 Timer B clocked by the output of Timer A11 1 0 00 Timer B interrupts are disabled 01 Timer interrupt use Interrupt Priority 1 10 Timer B interrupt use Interrupt Priority 2 11 Timer B interrupt use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 173 Timer Count MSB x Register TBM1R Address 0x00B2 TBM2R Address 0x00B4 Bit s Value Description Two MSBs of the compare value for the Timer B comparator This 7 6 compare value will be loaded into the actual comparator when the current compare detects a match 5 0 These bits are reserved and should be written with zero Timer B Count LSB x Register TBL1R Address 0x00B3 TBL2R Address 0x00B5 Bit s Value Description Eight LSBs of the compare value for the Timer B comparator This 7 0 compare value will be loaded into the actual comparator when the current compare detects a match Timer B Step LSB x Register TBSL1R Address 0x00BA TBSL2R Address 0x00BC Bit s Value Description Eight LSBs of the step size for the Timer B comparator The new compare 7 0 value will be loaded into the actual comparator when the current compare
111. mode by writing to SxCR receive input port and 7 or 8 bits Also select the 4 Select additional options by writing to SxER parity RZI encoding clock polarity and behavior during break A Write the desired divider value to TATXR for the appropriate serial port or else write a divider value to the dedicated 15 bit divider in SxDLR and SxDHR If the dedicated divider is to be used write a 1 to the most significant bit of SxDHR to enable it A sample asynchronous serial interrupt handler is shown below for Serial Port A async_sera_isr push af 101 14 SASR bit 7 push af jr 7 check for tx rx ready ioi 1 a SADR 2 Ne s save used registers get status check if byte ready in RX buffer save status for next check read byte and clear interrupt do something with byte here check_for tx pop af bit a 3 2 jr nz done get next byte to be 101 14 SADR a done pop af ipres ret check if TX buffer was emptied byte into TX buffer and clear transmitted into A here load next interrupt restore used registers To transmit with a 1 address bit appended write the data to SxAR instead of SxDR to append 0 address bit write to SxLR instead Rabbit 6000 User s Manual digi com 190 19 3 2 Clocked Serial Mode The following steps explain how to set up Serial Ports A D for the clocked serial mode When the inter nal clock is sele
112. modes Four levels of interrupt priority allow fast response to real time events Its compact instruction set and high clock speeds give the Rabbit 6000 exceptionally fast math logic and I O performance The Rabbit 6000 contains 1MB of internal high speed 16 bit RAM which can be used for both code and data It also contains 32 KB of battery backable 16 bit SRAM also high speed for applications where data retention is critical It is capable of booting off of a standard serial flash so a microcontroller applica tion with no external parallel memory is possible The Rabbit 6000 provides two options for network connectivity a full 10 100Base T Ethernet MAC and PHY built into the device and a wireless 802 11a b g MAC compatible with several standard Wi Fi trans ceivers Both network interfaces can be active at the same time The Rabbit 6000 also contains a USB 2 0 compatible full speed USB host MAC and PHY The Rabbit 6000 also features two flexible interface modules or FIMs These two modules can be loaded with customized designs to support a variety of interfaces including serial ports and CAN bus interfaces Rabbit 6000 User s Manual digi com 8 1 2 Features The Rabbit 6000 contains an internal phase locked loop PLL that is fully controlled by software and pro vides up to a 200 MHz clock from a 25 MHz input Other clock options are available as well including the clock doubler and divider features present in earlier
113. need further informa tion please contact your Rabbit sales representative Table 1 1 Rabbit 6000 Specifications and Features Package 292 ball BGA 233 ball BGA Package Size 17 mm x 17 mm x 1 3 mm 15 mm x 15 mm x 1 3 mm Operating Voltage 1 2 V DC core 3 3 V DC I O ring 372 uA MHz Q 1 2 V 3 3 V 25 200 MHz Operating Current typ Wi Fi and Ethernet disabled Operating Temp 40 C to 85 C Maximum Clock Speed 200 MHz 64 arranged in eight 8 bit ports 10 100Base T 802 11b g Wi Fi Digital I O Network Interfaces Serial Ports 6 CMOS compatible 2 CMOS compatible Baud Rate Clock speed 8 max asynchronous PC Ports 1 1 Address Bus 24 bit None Data Bus 8 16 bit None Twelve 8 bit one 10 bit with 2 match registers TURIS and one 16 bit with 8 match registers Real Time Clock Yes battery backable RTC Oscillator Circuitry External Watchdog Timer Supervisor Yes Clock Modes 1x 2x 2 3 14 16 8 Sleepy 32 kHz Power Down Modes Ultra Sleepy 16 8 4 2 kHz External I O Bus 8 data 8 address lines No 10 bit 2 synchronous channels up to 40 megasamples s A D Converters 10 bit single channel up to 1 megasamples s 12 bit eight multiplexed channels up to 1 megasamples s D A Converters 10 bit 2 synchronous channels up to 80 megasamples s Limitations on the use of the internal RAM are present when
114. nibble peripheral clock is perclk 2 01 The lower nibble peripheral clock is the output of Timer 1 10 The lower nibble peripheral clock is the output of Timer B1 11 The lower nibble peripheral clock is the output of Timer B2 Rabbit 6000 User s Manual digi com 142 Parallel Port F Function Register PFFR Address 0x003D Bit s Value Description 7 0 0 The corresponding port bit functions normally 1 The corresponding port bit carries its alternate signal as an output See Table 13 1 Parallel Port F Drive Control Register PFDCR Address 0x003E Bit s Value Description 7 0 0 The corresponding port bit as an output is driven high and low 1 The corresponding port bit as an output is open drain Parallel Port F Data Direction Register PFDDR Address 0x003F Bit s Value Description 7 0 0 The corresponding port bit is an input 1 The corresponding port bit is an output Rabbit 6000 User s Manual digi com 143 Parallel Port Fx Control Register PFOCR Address 0x04B8 PF1CR Address 0x04B9 PF2CR Address 0x04BA PF3CR Address 0x04BB PF4CR Address 0x04BC PF5CR Address 0x04BD PF6CR Address 0x04BE PF7CR Address 0x04BF Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output
115. nominal Low time 00101 15 nS nominal Low time 00110 16 5 nS nominal Low time 00111 18 nS nominal Low time 01000 19 5 nS nominal Low time 01001 21 ns nominal Low time 01010 22 5 ns nominal Low time 01011 24 ns nominal Low time 01100 25 5 ns nominal Low time 01101 27 ns nominal Low time 01110 28 5 ns nominal Low time 01111 30 ns nominal Low time 10001 4 5 nS nominal Low time 10010 6 nS nominal Low time Rabbit 6000 User s Manual digi com Global Output Control Register GOCR Address 0x000E Bit s Value Description 7 6 00 CLK pin is driven with peripheral clock 01 CLK pin is driven with peripheral clock divided by 2 10 CLK pin is low 11 CLK pin is high 5 4 00 STATUS pin is active low during a first opcode byte fetch 01 STATUS is active low during an interrupt acknowledge 10 STATUS pin is low 11 STATUS pin is high 3 2 00 WDTOUT pin functions normally 01 Enable WDTOUT for test mode Reserved for internal use only 10 WDTOUT pin is low 1 cycle min 2 cycles max of 32 kHz 11 This bit combination is reserved and should not be used 1 0 00 BUFEN pin is active low during external I O cycles 01 BUFEN pin is active low during data memory accesses 10 BUFEN pin is low 11 BUFEN pin is high Rabbit 6000 User s Manual digi com 3
116. on rising edge 11 Parallel Port E low nibble interrupt on both edges 1 0 00 This external interrupt is disabled 01 This external interrupt uses Interrupt Priority 1 10 This external interrupt uses Interrupt Priority 2 11 This external interrupt uses Interrupt Priority 3 Rabbit 6000 User s Manual digi com 92 Interrupt x Control Register I2CR Address 0x009A Address 0 009 IACR Address z 0x009C IBCR Address 0x009D I6CR Address 0x009E I7CR Address 0x009F Bit s Value Description 7 0 Interrupt from Parallel Port F 1 Interrupt from Parallel Port G 6 4 000 Interrupt from parallel port bit 0 001 Interrupt from parallel port bit 1 010 Interrupt from parallel port bit 2 011 Interrupt from parallel port bit 3 100 Interrupt from parallel port bit 4 101 Interrupt from parallel port bit 5 110 Interrupt from parallel port bit 6 111 Interrupt from parallel port bit 7 3 2 00 Interrupt disabled 01 Interrupt on falling edge 10 Interrupt on rising edge 11 Interrupt on both edges 1 0 00 This external interrupt is disabled 01 This external interrupt uses Interrupt Priority 1 10 This external interrupt uses Interrupt Priority 2 11 This external interrupt uses Interrupt Priority 3 Rabbit 6000 User s Manual digi com 93 8 PARALLEL PORT A 8 1 Overview Parallel Port A is a byte wide port that ca
117. pin which is powered by the backup battery is high during reset and power down as long as VBAT and VBATIO are present but low at all other times and can be used to control an external power switch to disconnect VDDIO from VBATIO when the main power source is removed 3 2 2 Clocks The processor requires a 32 kHz clock input to generate the 2400 bps internal clock required for asynchro nous serial bootstrap which is used when booting via Dynamic C and the Rabbit Field Utility No 32 kHz clock is required for either clocked serial or slave port bootstrap When the processor comes out of reset the CPU clock and peripheral clocks are both in divide by 8 mode 3 2 3 Other Registers Register Function Enable disable processor monitoring of SMODE SPER pins read current state of SMODE pins 3 2 4 Interrupts There are no interrupts associated with reset or bootstrap Rabbit 6000 User s Manual digi com 37 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 The reset sequence requires a minimum of 128 cycles of the main clock to complete in either case During reset the impedance of the CS1 pin is high and all other memory a
118. rate can be individually controlled for each Parallel Port F pin In addition a 75 pullup or pulldown resistor can be enabled on each pin Note that it is possible for either Flexible Interface Module to use any of the parallel ports See Chapter 33 for more information Table 13 1 Parallel Port F Pin Alternate Output Functions Pin Name Alt Out 0 Alt Out 1 Alt Out 2 Alt Out 3 PF7 FIMA7 17 PWM3 SCLKC PF6 FIMA6 16 PWM2 TXE PF5 FIMAS I5 PWMI RCLKE PF4 FIMA4 14 PWMO TCLKE PF3 FIMA3 TIMER C3 SCLKD PF2 FIMA2 12 TIMER C2 TXF FIMAI TIMER PFO FIMAO 10 TIMER CO TCLKF Rabbit 6000 User s Manual digi com 136 Table 13 2 Parallel Port F Pin Alternate Input Functions Pin Name D FIM PF7 INT2 7 FIMA7 PF6 INT2 7 FIMA6 5 INT2 7 FIMAS PF4 INT2 7 FIMA4 INT2 7 FIMA3 PF2 INT2 7 FIMA2 PFI INT2 7 FIMA1 PFO INT2 7 FIMAO Rabbit 6000 User s Manual digi com 137 13 1 1 Block Diagram Parallel Port F Data PFDR Serial Ports Tx Rx Clocks External I O Strobes PWM Output Timer C Output External Interrupts FIMA perclk SSCS Timer B1 TimerB2 Rabbit 6000 User s Manual digi com 138 13 1 2 Registers Register Name Mnemonic I O Address R W Reset Port F Data Register PFDR 0x0038
119. register the read of the least significant lowest byte will latch the peripheral s reg ister value for all four bytes Those values will remain until the next read of the lowest byte so to avoid stale data all four bytes should be read whenever a 32 bit register is accessed 27 3 2 Setup The following steps explain how to set up Network Port D 1 In MSSR select the 48 MHz clock source crystal or external signal 2 Write the interrupt vector for the interrupt service routine to the external interrupt table 3 If desired set up the USB power control and overcurrent fault signals by writing to PEDDR PEFR PEALR and USBWR 4 Select the optional pulldown resistors on D and D by writing to USBWR 5 Select two DMA channels for USB transmit and receive by writing to the appropriate DxSCR 6 Refer to the OHCI specification for details on loading descriptors and further setup 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 Rabbit 6000 User s Manual digi com 320 27 4 Register Descriptions USB Wrapper Register USBWR Address 0x1060 Bit s Value Description 7 3 These bits are reserved and should be written with zeros 2 0 Disable the 19 5 kQ pulldo
120. selects can be enabled via GPSCR to reduce power consumption even more when running off the 32 kHz oscillator When self timed chip selects are enabled the chip select is only active for a short 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 T1 T2 32 kHz gt 100 ns lt Rabbit 6000 User s Manual digi com 412 36 3 Register Descriptions Global Control Status Register GCSR Address 0x0000 Bit s Value Description 00 No reset or watchdog timer timeout since the last read 7 6 01 watchdog timer timed out These bits are cleared by a read of this register Read only 10 This bit combination is not possible 11 Reset occurred These bits are cleared by a read of this register 0 No effect on the periodic interrupt This bit will always be read as zero 5 1 Force a periodic interrupt to be pending 000 Processor clock from the fast clock divided by 8 Peripheral clock from the fast clock divided by 8 001 Processor clock from the fast clock divided by 8 Peripheral clock from the fats clock 010 Processor clock from the fast clock Peripheral clock from the fast clock 011 Processor clock from the fast clock divided by 2 Peripheral clock from the fast clock divided by 2 4 2 100 Processor clock from the 32 k
121. setting for both the bus interleaving and bus sharing modes since both DMA modes may be occurring depending on the hardware setup Table 24 5 Example of Rotating DMA Channel Priority Rotation Channel Priority High to Low Initial 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 First 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 Second 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 Third 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 Rabbit 6000 User s Manual digi com 259 24 3 5 Buffer Descriptor Modes Flags in the control byte of a buffer descriptor which gets loaded into DyCR describe whether to halt on completion of the transfer or load another descriptor and whether the next descriptor is adjacent in mem ory which implies that the current descriptor is only 12 bytes long or located at the link address Each descriptor can also be set to generate an interrupt on completion of the transfer 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 24 3 5 1 Single Buffer In the simplest mode a single descriptor is set to halt and interrupt on completion Single Buffer Initial Buffer Descriptor Address 12 bytes Interrupt 24 3 5 2 Buffer Array In this mode an array of 12 byte de
122. should be taken e If single step functionality is desired the breakpoint interrupt should be re enabled by writing the appropriate bit to BDCR If this is done the interrupt handler needs to be exited in a particular manner see below Rabbit 6000 User s Manual digi com 363 32 3 2 Example ISR A sample interrupt handler is shown below breakpoint_isr push af ioi 1 BDCR determine which interrupts are pending clear the interrupt request handle all breakpoints here reenable any breakpoints by writing to BDCR pop af ipres you should exit the handler with these two instruc tions ret if you reenabled breakpoints otherwise another breakpoint interrupt may occur inside the ISR Rabbit 6000 User s Manual digi com 364 32 4 Register Descriptions Breakpoint Debug Control Register BDCR Address 0x001C Bit s Value Description 7 0 Normal RST 0x28 operation 1 RST 0x28h is NOP 6 0 0 The corresponding Breakpoint request is not pending The corresponding Breakpoint request is pending Reading this register Read 1 automatically clears all pending breakpoint requests 6 0 0 No effect on the corresponding Breakpoint request Write 1 Make the corresponding Breakpoint request pending Breakpoint x Control Register BOCR Address 0x030B 1 Address 0x031B B2CR Address 0x032
123. start sending another byte and the transmit buffer is empty 1 0 00 These bits are always zero in the asynchronous mode Rabbit 6000 User s Manual digi com 194 Serial Port x Status Register SASR Address 0x00C3 SBSR Address 0x00D3 Clocked Serial Mode Only SCSR Address 0x00E3 SDSR Address 0x00F3 Bit s Value Description 7 0 The receive data register is empty 1 There is byte the receive buffer The Serial Port will request an interrupt while this bit is set The interrupt is cleared when the receive buffer is empty 6 0 This bit is always zero in clocked serial mode 5 0 The receive buffer was not overrun 1 The receive buffer was overrun This bit is cleared by reading the receive buffer 4 0 This bit is always zero in clocked serial mode 3 0 The transmit buffer is empty The transmit buffer is not empty The Serial Port will request an interrupt when 1 the transmitter takes a byte from the transmit buffer Transmit interrupts are cleared when the transmit buffer is written or any value is written to this register 2 0 The transmitter is idle The transmitter is sending a byte An interrupt is generated when the transmitter 1 clears this bit which occurs only if the transmitter is ready to start sending another byte but the transmit buffer is empty 1 0 Normal clocked serial transmit command per byte Rabbit 6000 User s Manual dig
124. target slave address and R W bit by writing to SGSAxR Set the master mode and enable the controller by setting bits 1 and 2 of SGCOR Send the first byte by setting bits 4 and 7 of SGCOR This can be combined with the previous opera tion Monitor bit 4 of SGSxR to determine when the byte has been sent Bit 0 should be high as well Load the next data byte into SGCDxR Receive the first data byte by clearing bit 4 and setting bit 7 of SGCOR If this is the final byte set bit 5 as well to follow it with a Stop condition Monitor bit 4 of SGSxR to determine when byte has been received Bit 1 will also be set if this is the final byte Read SGDR to get the data 10 Repeat Steps 6 8 until all data have been received To start communicating with a new slave restart at Step 2 35 3 5 Slave Mode Data Write To write data in slave mode perform the following operations Q N e nin 35 3 Set the slave address by writing to SGSAxR Set slave mode by clearing bit 2 and enable the controller by setting bit 1 of SGCOR Monitor bits 5 and 8 of SGSxR to determine when byte has been received for the correct slave address Bits 1 and 2 should also be set and bit O clear Load the byte to be sent into SGDR and send it by setting bit 7 of SGCOR Monitor bit 4 of SGSxR to determine when byte has been sent Bit 0 should also be set If bits 1 or 7 of SGSxR are set then an ACK or STOP condition occurred and the slav
125. the System User Mode is enabled and the processor is in the User Mode the processor will not actu ally enter Priority 3 any attempt to enter Priority 3 will actually be requested as Priority 2 When an interrupt is handled a call is executed to a fixed location in the interrupt vector tables This oper ation requires 11 clocks the minimum interrupt latency for the Rabbit 6000 There are two vector tables the internal and the external interrupt vector tables that can be located anywhere in logical memory by set ting the processor s IIR and EIR registers The IIR and EIR registers hold the upper byte of each table s address For example if IIR is loaded with OxC4 then the internal interrupt vector table will start at the logical memory address 0xC400 Both the internal and external interrupt vector table occupy 512 bytes Since the RST and SYSCALL vec tors use all eight bits of the IIR for addressing the lowermost bit of IIR should always be set to zero so to keep some vectors from inadvertently overlapping Each interrupt s vector begins on a 16 byte boundary inside the vector tables It may be possible to fit a small routine into that space but it is typical to place a call to a separate routine in that location Some Rabbit 6000 instructions are chained atomic which means that an interrupt cannot occur between that instruction and the following instruction These instructions are useful for doing things like exiting interrupt handle
126. 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 Rabbit 6000 User s Manual digi com 315 26 3 2 Interrupts The wireless network interrupt can be generated for any of the following reasons When data are available in the receive FIFO When the transmit FIFO becomes empty When a receive timeout occurs When a transmit abort occurs When an Announcement Traffic Indication Message ATIM is received When the receive FIFO is overrun When a complete packet is received The events that generate an interrupt can be selected in NCISR The wireless network port interrupt vector is located in the IIR at offset 0 100 It can be set as Priority 1 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 Rabbit 6000 User s Manual digi com 316 27 USB HOST 27 1 Overview Network Port D implements a USB 2 0 compliant host interface and PHY The USB host i
127. the initial address registers DyLAnR and use a write to DMALR to auto load the values from memory into the registers and start the transfer The DMA transfer will then continue reading buffer descriptors until a buffer marked halt is completed The descriptor can be either 12 or 16 bytes in length a bit in the channel control byte which corresponds to DyCR selects whether the link address is present or not The processor skips the read of those bytes if a 12 byte descriptor is selected and always skips the reads of the bytes marked not used Table 24 2 DMA Buffer Descriptor Byte 0 Byte 1 Byte 2 Byte 3 Special Channel Bytes 0 3 Control Channel Control Buffer Length 15 0 Frame Status Bytes 4 7 Source Address 23 0 Not Used Bytes 8 11 Destination Address 23 0 Not Used Bytes 12 15 Link Address 23 0 Not Used Note that a length value of 0x0000 will result in a 65536 byte transfer The C structure to hold a descriptor is shown below typedef struct char frameStatus DxSCR char chanControl DxCR unsigned int bufLength DxLOR DxL1R dma_addr_t srcAddress DxSAOR DxSA1R DxSA2R dma_addr_t destAddress DxDAOR DxDA1R DxDA2R dma_addr_t linkAddress DxLAOR DxLA1R DxLA2R DMABufDesc It is possible to abort a DMA transfer by writing the appropriate bit to the halt register DMHLR DMHMR It is also possible to restart a DMA transfe
128. the match value can then be incremented auto matically by the step value Timer C is a 16 bit counter that counts up to a programmable limit It contains eight match registers so that up to four PWM both synchronous and variable phase or quadrature signals for motor control applications can be created The Rabbit 6000 also provides support for protected operating systems Support for two levels of opera tion known as system and user modes allow application critical code to operate in safety while user code is prevented from inadvertently disturbing the setup of the processor Memory blocks as small as 4 KB can be write protected against accidental writes by user code and stack over underflows can be trapped by high priority interrupts Security features are also available in the Rabbit 6000 New instructions were added to the existing encryption support to increase encryption algorithm speeds dramatically and 32 bytes of battery backed RAM can store an encryption key away from prying eyes The Rabbit 6000 supports sixteen channels of DMA access to internal or external memory internal I O addresses and the external I O bus Directing a DMA channel to or from an internal peripheral such as a serial port or the Ethernet port automatically connects DMA enable signals Burst size priority and guar anteed cycles for the processor are all under program control DMA operations to from the internal mem ory and peripherals can operate simultaneously
129. the slave port with SCS from Parallel Port E bit 7 011 Enable the external vO bus Parallel Port A is used for the data bus and Parallel Port B 7 2 is used for the address bus 100 This bit combination is reserved and should not be used 101 This bit combination is reserved and should not be used 110 Enable the slave port with SCS from Parallel Port B bit 6 111 Enable the external VO bus Parallel Port A is used for the data bus and Parallel Port B 7 0 is used for the address bus 1 0 00 Slave port interrupts are disabled 01 Slave port interrupts use Interrupt Priority 1 10 Slave port interrupts use Interrupt Priority 2 11 Slave port interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 41 4 SYSTEM MANAGEMENT 4 1 Overview There are a number of basic system peripherals in the Rabbit 6000 processor some of which are covered in later chapters The peripherals covered in this chapter are the periodic interrupt the real time clock the watchdog timers the battery backed onchip encryption RAM and some of the miscellaneous output pins and their control and processor registers that provide the processor ID and revision numbers The periodic interrupt when enabled is generated every 16 clocks of the 32 kHz clock every 488 us or 2 048 kHz This interrupt can be used to perform periodic tasks The real time clock RTC consists of a 48 bit counter that is clocked by the 32 kHz clock It is powered
130. 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 Rabbit 6000 User s Manual digi com 208 Figure 20 2 shows the adjustment ranges and output clock for the different modes of operation of the DPLL Each mode of operation will be described in turn een 1111111 11101 adj ai owe ADDING SUBTRACT wrzictock 11111110 ot BIPHASE LEVEL adj suemacr Nowe T NM BIPHASE LEVEL CLOCK BIPHASE SPACE adj NoNE ADD one TRANSITIONS NONE BIPHASE SPACE CLOCK BIPHASE MARK adjnone annone g GNORE SUBTRACTINone BIPHASE MARK CLOCK Figure 20 2 Adjustment Ranges and Output Clock for Different DPLL Modes With NRZ and NRZI encoding all transitions occur on bit cell boundaries and the data should be sampled in the middle of the bit cell If a transition occurs after the expected bit cell boundary but before the midpoint the DPLL needs to lengthen the count to line up the bit cell boundaries This corresponds to the add one and add two regions shown If a transition occurs before the bit cell boundary but after the midpoint the DPLL needs to shorten the count to line up the bit cell boundaries This corresponds to the subtract one and subtract two regions shown The DPLL makes no adjustment if the bit cell boundaries are l
131. time between events on those pins 2 Set the counter to start on the start condition and stop on the stop condition latch on the stop condi tion and generate an interrupt on the stop condition 3 In the interrupt handler read out the counter to determine the pulse width or time interval between the two events Time Stamp External Events The following steps explain how to time stamp external events 1 Set the trigger for the desired event type 2 Set the counter to run continuously latch on the start and or stop condition and generate an inter rupt on the start and or stop condition 3 In the interrupt handler read out the counter as an event timestamp Measure Time Interval from a Software Start to an External Event The following steps explain how to measure the time interval between a software start and the occurrence of an external event 1 Set up the counter to run continuously latch on the stop condition and generate an interrupt on the stop condition The option to not enable the stop condition is not available since those bits would be ignored in the count mode 2 Set up the stop condition for the event of interest 3 Reset the counter via ICCSR at the software start 4 In the interrupt handler read the counter as a time duration 28 3 5 Count Mode The following steps explain how to count pulses 1 Set the counter to run continuously until the stop condition occurs and to latch on the start conditi
132. to learn the current state of a Parallel Port E pin any value written to an input pin will not appear on that pin until that pin becomes an output 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 Rabbit 6000 User s Manual digi com 130 12 4 Register Descriptions Parallel Port E Data Register PEDR Address 0x0070 Bit s Value Description 7 0 Read current state of Parallel Port E pins 7 is reported The Parallel Port E buffer is written with this value for transfer to the Write Parallel Port E output register on the next rising edge of the port transfer clock The port transfer clock is established by PECR Parallel Port E Alternate Low Register PEALR Address 0x0072 Bit s Value Description 7 6 00 Parallel Port E bit 3 alternate output 0 13 01 Parallel Port E bit 3 alternate output 1 no functionality 10 Parallel Port E bit 3 alternate output 2 TIMER C3 11 Parallel Port E bit 3 alternate output 3 SCLKD 5 4 00 Parallel Port E bit 2 alternate output 0 12 01 Parallel Port E bit 2 alternate output 1 USB PWR 10 Parallel Port E bit 2 alternate output 2 TIMER C2 11 P
133. to select the interrupt priority note that inter rupts will be enabled once this value is set this step should be done last The following actions occur within the interrupt service routine If needed the current counter value can be read from and reading from latches the value of ICMxR so ICLxR should always be read first If the counter is expected to roll over determine if that is why the interrupt occurred by reading the sta tus bits in ICCSR and adjusting any software counters accordingly The interrupt request should be cleared by reading from ICCSR 28 3 3 Example ISR A sample interrupt handler is shown below ic isr push af ioi ld a 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 ret Rabbit 6000 User s Manual digi com 326 28 3 4 Capture Mode Pulse Width or Time Between Events The following steps explain how to measure the pulse width or time between events Note that for proper operation a start condition needs to be the first event seen once the input capture is enabled if a stop con dition occurs first the system will stop without taking a measurement 1 Select the same input pin to perform a pulse width measurement between the start and stop condi tions or select two different input pins to measure
134. transfer to the match registers of Timer B to generate precisely timed trans missions The serial port data clocks can be generated from the appropri ate 8 bit timer from Timer A shown in Table 19 1 or from a dedicated 15 bit divider In either case the resulting bit data rate in the asynchronous mode is 1 8 or 1 16 the data clock rate selectable However the bit data rate in the clocked serial mode is equal to the data clock rate as generated from the appropriate Timer A timer or from the dedicated 15 bit divider When Serial Port A is used in the asynchronous bootstrap Table 19 1 Timer A Data Clocks mode the 32 kHz clock is used to generate the expected 2400 bps data rate Serial Port Data Clock A Timer A4 B Timer 5 Timer 6 Timer 7 The behavior of the serial port during a break line held low is configurable character assembly tinue during the break condition to allow for timing the break or character assembly can be inhibited to reduce the interrupt overhead Rabbit 6000 User s Manual digi com 185 19 1 1 Block Diagram Peripheral Clock Rx Pins Serial Ports A D 15 bit Divider Rx Buffer Latched 4 bytes Rx Buffer Serial Data Clock Latched Tx Buffer Serial Port Control Tx Buffer 4 bytes Tx Pins Serial Port Interrupt Status Request Rabbit 6000 User s Manual digi com 186 19 1 2 Registers
135. user defined FIMA Inbound Interrupt Register Bit s Value FAIIR Address 0x6004 Description 7 0 Clear this bit after the interrupt code from the Flexible Interface Module processor has been cleared by the FIM Acknowledge interrupt request This bit must remain set until the interrupt code from the Flexible Interface Module processor has been cleared 6 0 write Interrupt value to the Flexible Interface Module processor Writing a non zero value to this field causes an interrupt to be generated to the Flexible Interface Module processor This field should not be cleared until bit 7 of the Outbound Interrupt Register is set by the Flexible Interface Module processor The code values are user defined FIMA Interrupt Control Register FAICR Address 0x6006 Bit s Value Description 7 0 main processor has read write access to the Flexible Interface Module program memory The Flexible Interface Module processor has read access to the Flexible Interface Module program memory 6 2 These bits are reserved and should always be written with zeros 1 0 00 Flexible Interface Module interrupt disabled 01 Flexible Interface Module interrupt uses priority 1 10 Flexible Interface Module interrupt uses priority 2 11 Flexible Interface Module interrupt uses priority 3 Rabbit 6000 User s Manual digi com 375 FACBOR FACB1R FACB
136. uses the eight MSBs of each pulse width register to select the base width in each of the quadrants This is the equivalent to dividing the contents of the pulse width register by four and using this value in each quadrant To get the exact high time the Pulse Width Modulator uses the two LSBs of the pulse width register to modify the high time in each quadrant according to the table below The n 4 term is the base count formed from the eight MSBs of the pulse width register Pulse Width LSBs 1st 2nd 3rd 4th 00 n 4 1 nl4 4 4 01 4 1 4 n A 1 4 10 4 1 4 1 n A 1 4 11 n 4 1 n 4 1 n 4 1 n 4 1 Rabbit 6000 User s Manual digi com 341 The diagram below shows a PWM output for several different width values for both modes of operation Operation in the spread mode reduces the filtering requirements on the PWM output in most cases n 255 normal 256 counts n 255 spread 64 counts E counts 64 counts les counts n 256 spread les counts 64 counts 64 counts 64 counts n 257 spread les counts 64 counts 65 counts 64 courts n 258 spread les counts les courts 65 counts 64 court n 259 spread 65 counts 65 les court 65 n 259 normal 1 260 counts 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 Regist
137. vice versa Sample code for each is shown below 33 4 1 1 Rabbit Interrupt Request to Flexible Interface Module ld a 0x55 ioi ld FAIIR a ld b 25 waitForFIM dec b jp z timeout ioi ld a FAIOR bit 7 jr 2 waitForFIM ld a 0x00 ioi ld FAIIR a request send interrupt 0x55 to FIMA timeout counter for FIM ack decrement timeout counter exit to timeout handling routine get interrupt status from FIMA check interrupt ack bit loop until FIMA ack s the interrupt FIMA has ack d SO clear interrupt Rabbit 6000 User s Manual digi com 372 33 4 1 2 Flexible Interface Module Interrupt Request to Rabbit FIM A ISR push af push bc ioi ld FAIOR id a 0x80 ioi ld FAIIR a ld b 25 waitForFIM dec b jp z timeout ioi ld a FAIOR bit 7 a jr jz waitForFIM jp done timeout handle timeout here done pop bc pop af ipres ret Save registers get interrupt value that FIMA sent Set acknowledge bit for FIMA timeout counter for FIM ack decrement timeout counter exit to timeout handling routine check for FIMA clearing interrupt bit by setting flag calling exception etc restor restore registers IP stack Rabbit 6000 User s Manual digi com 373 33 5 Register Descriptions
138. when the Page Mode is enabled a second setting selects the number of wait states for all subsequent reads in the Page Mode allowing from zero to three automatic wait states for the same page accesses in the Page Mode The choices available for the advanced bus wait states are sufficient to allow interfacing to a variety of standard memories for any Rabbit 6000 speed grade When a 16 bit memory is connected to CSO the first few instructions must program the device to operate in 16 bit mode This code is shown below This code should be the first thing executed by your device Because the processor is fetching bytes from a 16 bit memory device that is not connected to AO only one byte instructions can be used and they must occur in pairs Rabbit 6000 User s Manual digi com 65 ORG 0000h XOR A XOR A LD H LD H A SCF SCF RLA RLA LD B A LD B A SCF SCF ADC A B ADC A B ADD A A ADD A A SCF SCF ADC A H ADC A H LD L A LD L A Yon Yen LD HL LD HL NOP NOP two 00000000 00000000 00000001 00000010 00000010 00000101 00000111 00001110 00011100 00011101 00011101 IO Is same as one MACR lt 00000010 dummy memory write no WE required delay to start up the 16 bit bus 5 3 5 Separate Instruction and Data Space To make better use of the 64 KB o
139. with code fetches so no performance hit occurs When accessing external memory DMA operations will alternate between DMA and code fetches as in previous Rabbit designs The Rabbit 6000 contains an 802 11a b g wireless MAC peripheral also designed to operate with the DMA peripheral It includes support for all standard Wi Fi features including infrastructure and ad hoc modes The high speed internal A D converter and D A converter and clocked serial control port provide a generic interface to several common Wi Fi transceivers A low speed A D converter is also available to monitor the transmit signal strength if desired The two A D converters and single D A converter are avail able for customer use when the Wi Fi peripheral is disabled The Rabbit 6000 also contains a full featured 10 100Base T Ethernet MAC peripheral and PHY Designed to operate with the DMA peripheral the Ethernet peripheral is fully compliant with the 802 3 Ethernet standard including support for auto negotiation link detection multicast filtering and broadcast addresses The Rabbit 6000 provides an Open Host Controller Interface USB device and PHY Fully supported by the DMA peripheral the MAC and PHY are USB 2 0 compliant full speed 12 Mbit s devices Another new feature of the Rabbit 6000 is a 12 bit 8 channel A D converter This A D converter can run at up to 1 megasample per second based on either the internal clock or an external clock input
140. 0 6 5 nominal Low time Rabbit 6000 User s Manual digi com 415 37 SPECIFICATIONS 37 1 Preliminary DC Characteristics Table 37 1 DC Electrical Characteristics VDD 3 3V Parameter Symbol Min Typ Max Operating Temperature T 40 C 85 C A Storage Temperature 55 C 125 C Core Supply Voltage VDDcorg 1 08 V 12 1 32 V Core Current 200 MHz 25 C 72 mA 5 Additional current for WiFi 25 C 65 mA 115 mA Additional current for Ethernet 25 IcoRE 75 mA 160 mA Core Current 32 768 kHz 25 5 T O Ring Supply Voltage 3 3 V VDDi o 3 0 V 33V 3 6V I O Current 200 MHz 25 C 21 mA Additional current for WiFi 25 C 25 mA 35 mA Additional current for Ethernet 25 C lio 55 mA 60 mA 8 Current 32 768 kHz 25 C 6mA Input Low Voltage Vit 0 8 V Input High Voltage Vin 20 V Output Low Voltage VoL 0 0 V 0 4 V Output High Voltage Von 24 3 3 V Output drive Address and data bus selectable 4 14 mA CS1 8mA Other memory strobes selectable 4 14 mA IOWR IORD IOBEN selectable DRIVE 4 14 mA All parallel port pins selectable 4 14 mA CLK ACK LED LED 3 0 16 mA All other pins 8mA Rabbit 6000 User s Manual digi com 416 Table 37 2 Battery Backed DC Electrical Characteristics VDDcore 1 2V 10 VDDjo 3 3V 10 TA 40 to 85 C Parameter Symbol Min Typ Max VBAT Suppl
141. 0 Control Regist IBOCR 0x0080 or W 0000000 an ontrol Register 0x0450 R W Rabbit 6000 User s Manual digi com 352 31 2 Dependencies 31 2 1 I O Pins The external I O bus uses 7 for the lower byte of data and PHO PH7 for the upper byte if 16 bit mode is enabled in All Parallel Port H settings are overridden if the 16 bit I O bus mode is enabled Either PB2 PB7 or PBO PB7 are used for address lines depending on the setting in SPCR Address bits 6 and 7 can also be enabled on pins PD1 PD3 PD5 or PD7 which allows PBO and PB1 to be used as clocked serial I O instead of as external I O The IOWR IORD and BUFEN pins are dedicated strobes for external I O accesses Drive strength slew rate and the pullup down resistor status are selectable via IOPCR The I O strobes can be directed to pins on Parallel Ports C D E F G or H each bank can be directed to the appropriate pin bank zero on PCO PDO or PEO bank one on PCI PD1 or PET etc The settings for each strobe will be reflected on IOWR IORD and BUFEN as well whenever that bank is accessed The I O handshake can be input on any one of the Parallel Port E pins PEO PE7 31 2 2 Clocks All external I O accesses strobes and handshake timeouts are based on the processor clock which can be taken directly or divided by 2 4 8 or 16 separately for each IO bank in the appropriate IBXER to provide slower access times when the main
142. 00 Rabbit microprocessor designers have had years of experience using Z80 Z180 and HD64180 microprocessors in small single board computers The Rabbit microprocessors share a similar architecture and a high degree of compatibil ity with these microprocessors but represent a vast improvement The Rabbit 6000 is a high performance microprocessor with low electromagnetic interference EMI and is designed specifically for embedded control communications and network connectivity Extensive inte grated features and glueless architecture facilitate rapid hardware design while a C friendly instruction set promotes efficient development of even the most complex applications The Rabbit 6000 is the second Rabbit microprocessor to have a full 16 bit internal bus architecture pro viding significant performance improvements when used with external 16 bit memory devices It also has the ability to support both 8 bit and 16 bit external memory devices The Rabbit 6000 is also the fastest microprocessor from Rabbit now a Digi International brand running at up to 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 PC port and pulse capture and measurement capabilities It also fea tures a battery backable real time clock glueless memory and I O interfacing and ultra low power
143. 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 00 No pullup or pulldown resistor 01 75 pullup resistor 10 75 pulldown resistor 11 75 keeper Rabbit 6000 User s Manual digi com 98 Slave Port Control Register SPCR Address 0x0024 Bit s Value Description 7 0 Program fetch as a function of the SMODE pins 1 Ignore the SMODE pins program fetch function 6 5 read These bits report the state of the SMODE pins write These bits are ignored and should be written with zero 4 2 000 Disable the slave port Parallel Port A is a byte wide input port 001 Disable the slave port Parallel Port A is a byte wide output port 010 Enable the slave port with SCS from Parallel Port E bit 7 011 Enable the external vO bus Parallel Port A is used for the data bus and Parallel Port B 7 2 is used for the address bus 100 This bit combination is reserved and should not be used 101 This bit combination is reserved and should not be used 110 Enable the slave port with SCS from Parallel Port B bit 6 111 Enable the external vO bus Parallel Port A is used for the data bus and Parallel Port B 7 0 is used for the address bus 1 0 00 Slave port interrupts are disabled 01 Slave port interrupts use Interrupt Priority 1 10 Slave port interrupts use Interrupt Priority 2
144. 000 User s Manual digi com 329 Input Capture Trigger x Register ICT1R Address 0x0058 ICT2R Address 0x005C Bit s Value Description 7 6 00 Disable the counter Applies even in Counter operation 01 The counter runs from the Start condition until the Stop condition 10 The counter runs continuously 11 The counter runs continuously until the Stop condition Disable the count latching function In this case and with Counter 5 4 00 operation only the ICLxR and return the programmed match value 01 Latch the count on the Stop condition only 10 Latch the count on the Start condition only 11 Latch the count on either the Start or Stop condition 3 2 00 Ignore the starting input 01 The Start condition is the rising edge of the starting input 10 The Start condition is the falling edge of the starting input 11 The Start condition is either edge of the starting input 1 0 00 Ignore the ending input These two bits are ignored in Counter operation 01 The Stop condition is the rising edge of the ending input 10 The Stop condition is the falling edge of the ending input 11 The Stop condition is either edge of the ending input Rabbit 6000 User s Manual digi com 330 Input Capture Source x Register ICS1R Address 0x0059 ICS2R Address 0x005D Bit s Value Description 7 6 00 Parallel
145. 000 User s Manual digi com 71 Memory Bank x Low High Control Register MBOLCR Address 0x0400 MBOHCR Address 0x0401 MB1LCR Address 0x0402 MB1HCR Address 0x0403 MB2LCR Address 0x0404 MB2HCR Address 0x0405 MB3LCR Address 0x0406 MB3HCR Address 0x0407 Bit s Value Description 7 6 00 Four five for writes wait states for accesses in this bank 01 Two three for writes wait states for accesses in this bank 10 One two for writes wait states for accesses in this bank 11 Zero one for writes wait states for accesses in this bank 5 0 Pass bank select address MSB for accesses in this bank 1 Invert bank select address MSB for accesses in this bank 4 0 Pass bank select address LSB for accesses in this bank 1 Invert bank select address LSB for accesses in this bank 3 2 00 OEO and WEO are active for accesses in this bank 01 and WE1 are active for accesses in this bank 10 OEO only is active for accesses in this bank 1 read only Transactions are normal in every other way 11 1 only is active for accesses in this bank 1 read only Transactions are normal in every other way 1 0 00 CSO is active for accesses in this bank 01 CS1 is active for accesses in this bank 10 CS2 is active for accesses in this bank CS3 internal memory is active for accesses in this bank When 11 standalone operation is selected
146. 0000000 FIMA FIMA Data FIFO Register FADFR 0x6000 XXXXXXXX FIMA Rx Status FIFO Register FARSFR 0x6001 R XXXXXXX FIMA FIFO Status Register FAFSR 0x6002 R 00000000 FIMA Outbound Interrupt Register FAOIR 0x6003 R 00000000 FIMA Inbound Interrupt Register FAIIR 0x6004 R W 00000000 FIMA Master Mode Register FAMMR 0x6005 R W 00000000 FIMA Interrupt Control Register FAICR 0x6006 R W 00000000 FIMA Control Bytes 0 15 FACBxR 0x6007 x R W 00000000 FIMA Port Expansion Bytes 0 15 FAPEBxR 0x6017 x R 00000000 FIMA Code LSB Register FACLR XXXXXXXX FIMA Code MSB Register FACMR R W FIMB FIMB Data FIFO Register FBDFR 0x7000 XXXXXXXX FIMB Rx Status FIFO Register FBRSFR 0x7001 R FIMB FIFO Status Register FBFSR 0x7002 R 00000000 FIMB Outbound Interrupt Register FBOIR 0x7003 R 00000000 FIMB Inbound Interrupt Register FBIIR 0x7004 R W 00000000 FIMB Master Mode Register FBMMR 0x7005 R W 00000000 FIMB Interrupt Control Register FBICR 0x7006 R W 00000000 FIMB Control Bytes 0 15 FBCBxR 0x7007 x R W 00000000 FIMB Port Expansion Bytes 0 15 FBPEBxR 0x7017 x R 00000000 FIMB Code LSB Register FBCLR x R W XxXXXXXX FIMB Code MSB Resgister FBCMR 2 XXXXXXXX Rabbit 6000 User s Manual digi com 370 33 3 Dependencies 33 3 1 I O Pins Each Flexible Interface Module has a single parallel port that can be enabled for its use bit by bit in that paral
147. 03 R XXXXXXXX Real Time Clock Byte 2 Register RTC2R 0x0004 R XXXXXXXX Real Time Clock Byte 3 Register RTC3R 0 0005 R XXXXXXXX Real Time Clock Byte 4 Register RTC4R 0 0006 R XXXXXXXX Real Time Clock Byte 5 Register RTCSR 0x0007 R XXXXXXXX Watchdog Timer Control Register WDTCR 0 0008 W 00000000 Watchdog Timer Test Register WDTTR 0 0009 W 00000000 Secondary Watchdog Timer Register SWDTR 0 000 w 11111111 Global Output Control Register GOCR 0 000 00000000 Global ROM Configuration Register GROM 0x002C R 0xx00000 Global RAM Configuration Register GRAM 0x002D R 0xx00000 Global CPU Configuration Register GCPU 0x002E R 0 00010 Global Revision Register GREV 0 002 R 0xx00000 Bay eed Onion SSE sak wr c Master System Configuration Register MSCR 0x0434 00000000 Master System Status Register MSSR 0 0435 00000 00 Rabbit 6000 User s Manual digi com 4 2 Dependencies 4 2 1 Pins The CLK STATUS WDTOUT and BUFEN pins are controlled by GOCR Each of these pins can be used as general purpose outputs by driving them high or low The CLK pin can output the peripheral clock the peripheral clock divided by two or be driven high or low The STATUS can be active low during the first byte of each opcode fetch active low during an interrupt acknowledge or driven high or low The WDTOUT pin can be active low whenever the watchdog timer resets the device or driven low The BUFE
148. 1 Master System Configuration Register MSCR Address 0x0434 Bit s Value Description 7 0 CPU clock direct from oscillator CPU clock from system PLL output divided by two Response to this 1 setting may be delayed until the PLL output is stable roughly 200 us after enabling the system PLL uses 32 kHz clock to generate delay 6 This bit is reserved and should be written as zero 5 0 Clock on chip 10 100 PHY from system oscillator Enable embedded oscillator in the internal 10 100 PHY If using this 1 option the oscillator must be enabled at least 500 ns before the PHY is enabled in ENPR This delay must be created in software 4 0 No reset of the internal 10 100 PHY Reads always return zero Write Reset the internal 10 100 PHY hardware This command must not be 1 issued until at least 600 ms after the internal PHY has been enabled in y ENPR This delay must be created in software 3 2 00 FIMB clock is disabled 01 FIMB clock is identical to the CPU clock 10 This bit combination is reserved and should not be used FIMB clock from system PLL output Response to this setting may be 11 delayed until the PLL output is stable roughly 200 us after enabling the system PLL uses 32 kHz clock to generate delay 1 0 00 FIMA clock is disabled 01 FIMA clock is identical to the CPU clock 10 This bit combination is reserved and should not be used FIMA clock from system PLL output Res
149. 1 External Bus 31 3 2 I O Strobes ient 31 3 3 I O Handshake 31 4 Register Descriptions 32 Breakpoints 321 OyerVieWw esent teer ente tes 32 1 1 Block Diagram 32 1 2 Registers eerie eres 32 2 Dependencies 32 2 1 TO PiN Seienn 32 22 Clocks aiiora 32 2 3 Other Registers 32 24 Interrupts 2 2220 32 3 Operation retenti ene 32 3 1 Handling Interrupts 32 3 2 Example ISR 32 4 Register Descriptions 33 Flexible Interface Modules 33 1 OverviIew Rabbit 6000 User s Manual digi com 33 2 Block Diagram 33 2 1 Registers 33 3 Dependencies 33 3 1 YO Pins vices eene 33 32 COCKS erento 33 3 3 Other Registers 33 3 4 Interrupts 334 Operation 33 4 1 Handling Interrupts 33 5 Register Descriptions 34 Error Check and Correction 34 1 Overview eerte reete 34 1 1 Block Diagram 34 1 2 Registers ne 34 2 Dependencies
150. 10 External DMA Request 0 supplied to DMA Channel 14 1111 External DMA Request 0 supplied to DMA Channel 15 Rabbit 6000 User s Manual digi com 268 DMA Master Request 1 Conirol Register DMR1CR Address 0x0107 Bit s Value Description 7 6 00 External DMA Request 1 disabled 01 External DMA Request 1 enabled from Parallel Port PD3 10 External DMA Request 1 enabled from Parallel Port PE3 11 External DMA Request 1 enabled from Parallel Port PE7 5 4 00 External DMA Request 1 falling edge triggered One transfer per request 01 External DMA Request 1 rising edge triggered One transfer per request 10 External DMA Request 1 active low Transfers continue while low 11 External DMA Request 1 active high Transfers continue while high 3 0 0000 External DMA Request 1 supplied to DMA Channel 0 0001 External DMA Request 1 supplied to DMA Channel 1 0010 DMA Request 1 supplied to DMA Channel 2 0011 External DMA Request 1 supplied to DMA Channel 3 0100 External DMA Request 1 supplied to DMA Channel 4 0101 External DMA Request 1 supplied to DMA Channel 5 0110 External DMA Request 1 supplied to DMA Channel 6 0111 External DMA Request 1 supplied to DMA Channel 7 1000 External DMA Request 1 supplied to DMA Channel 8 1001 External DMA Request 1 supplied to DMA Channel 9 1010 External DMA Request 1 supplied
151. 10x1 2 N A Sane 0 8 mm 0 8 mm 0 8 mm 0 8 mm Package Pins Separate Power and Ground for I O Buffers Yes Yes Yes Yes No EMI reduction Clock Spectrum Spreader Yes Yes Yes Yes Rabbit 2000B C Yes up to Phase Locked Loop 200 2x 2 3 1 2 2 3 1 2 2 3 1 2 2 3 14 16 I8 4 16 8 4 16 8 Wd Rabbit 6000 User s Manual digi com 13 Feature Rabbit 6000 Rabbit 5000 Rabbit 4000 Rabbit 3000 Rabbit 2000 Powerdown Modes sleepy 32 kHz 32 kHz 32 kHz 32 kHz 32 kHz Powerdown Modes 4 ulta sleepy 16 8 4 2kHz 16 8 4 2 kHz 16 8 4 2 KHz 16 8 4 2 KHz Short and Short and Short and Short and Low Power Memory Control Self Timed Self Timed Self Timed Self Timed None Chip Selects Chip Selects Chip Selects Chip Selects Extended Memory Timing for High Frequency Yes Yes Yes Yes No Operation Address Bus Size 24 bits 20 24 bits 20 24 bits 20 bits 20 bits External Data Bus Size 8 16 bits 8 16 bits 8 16 bits 8 bits 8 bits Internal Data Bus Size 16 bits 16 bits 8 bits 8 bits 8 bits Internal RAM EME OKs 128KB None None None battery backed Number of 8 bit I O Ports 8 6 5 7 5 External I O Data Address Bus Yes Yes Yes Yes None Number of Serial Ports 6 6 6 6 4 DMA Channels 16 8 8 None None Serial Ports Capable of Serial Ports Capable of SDLC HDLC 2 E F 2 E F 2 E F 2 E F N
152. 11BU1R D12BU1R D13BU1R D14BU1R D15BU1R DMA y Buffer Unused 15 8 Register Address 0x010B Address 0x011B Address z 0x012B Address 0x013B Address 0x014B Address z 0x015B Address 0x016B Address 0x017B Address 0x090B Address 0x091B Address 0x092B Address 0x093B Address 0x094B Address 0x095B Address 0x096B Address 0x097B Bit s Value Description 7 0 Bits 15 8 of the buffer unused length value are stored in this register Rabbit 6000 User s Manual digi com 274 DMA y Initial Addr 7 0 Register DOIAOR Address 0x010C 11 Address 0x011C 021 Address 0x012C D3IAOR Address 0x013C DA4IAOR Address 0x014C D5IAOR Address 0x015C D6IAOR Address 0x016C D7IAOR Address 0x017C D8IAOR Address 0x090C D9IAOR Address 0x091C D10IAOR Address 0x092C D11IAOR Address 0x093C 0121 Address 0x094C D13IAOR Address 0x095C 0141 Address 0x096C D15IAOR Address 0x097C Bit s Value Description 7 0 Bits 7 0 of the initial address are stored in this register DMA y Initial Addr 15 8 Register DOIA1R Address 0x010D D1IA1R Address z 0x011D D21A1R Address 0x012D D3IA1R Address z 0x013D DAIA1R Address 0x014D D5IA1R Address z 0x015D D6IA1R Address 0x016D D7I
153. 193 210 Global Output Control Register 31 Rabbit 6000 User s Manual rabbit com 453 DMA channels uuu ASS 253 DMA Master Auto Load LSB Register 264 DMA Master Auto Load MSB Register 265 DMA Master Control Register 266 DMA Master Control Status LSB Register 264 DMA Master Control Status MSB Register 264 DMA Master Halt LSB Register 265 DMA Master Halt MSB Register 265 DMA Master Request 0 Control Register 268 DMA Master Request 1 Control Register 269 DMA Master Timing Control Register 267 DMA Timed Request Control Register 270 DMA Timed Request Divider High Register 271 DMA Timed Request Divider Low Register 270 DMA y Buffer Complete Register 266 DMA y Buffer Unused 15 8 Register 274 DMA y Buffer Unused 7 0 Register 274 DMA y Control Register 278 DMA y Destination Addr 15 8 Register 282 DMA y Destination Addr 23 16 Register 282 DMA y Destination Addr 7 0 Register 281 DMA y Initial Addr 15 8 Register 275 DMA y Initial Addr 23 16 Register 276 DMA y Initial Addr 7 0 Register 275 DMA y Length 15 8 Register 279 DMA y Length 7 0 Register 279 DMA y Link Addr 15 8 Register 283 DMA y Link Addr 23 1
154. 2 second timeout Unless specific data are written to WDTCR before that time expires the processor will be reset The watchdog timer can be disabled by writ ing a sequence of two bytes to WDTTR as described in the register description Table 4 1 Watchdog Timer Settings WDTCR Value Effect 0 5 Restart watchdog timer with 2 second timeout 0 57 Restart watchdog timer with 1 second timeout 0 59 Restart watchdog timer with 500 millisecond timeout 0 53 Restart watchdog timer with 250 millisecond timeout Ox5F Restart the secondary watchdog timer The watchdog timer also contains a special test mode that speeds up the timeout period by clocking it with the peripheral clock instead of the 32 kHz clock This mode can be enabled by writing to WDTTR 4 3 4 Secondary Watchdog Timer The secondary watchdog timer is disabled on reset The following steps explain how to use the secondary watchdog timer 1 Write the vector to the interrupt service routine to the internal interrupt table 2 Write the desired timeout period to SWDTR This also enables the secondary watchdog timer 3 Restart the secondary watchdog timer by either writing the timeout period to SWDTR or writing Ox5F to WDTCR If the secondary watchdog timer counts down to zero a Priority 3 secondary watchdog interrupt will occur This interrupt request is cleared by writing a new timeout value to SWDTR A sample interrupt handler is shown below secw
155. 23 16 Register DyIA2R 0x010E DMA y Special Control Register DySCR 0 0180 R W 00000000 DMA y Control Register DyCR 0x0181 R W 00000000 DMA y Buffer Length 7 0 Register DyLOR 0x0182 DMA Buffer Length 15 8 Register DyLIR 0x0183 DMA Source Address 7 0 Register DySAOR 0 0184 DMA Source Address 15 8 Register DySAIR 0 0185 Rabbit 6000 User s Manual digi com 253 Register Name Mnemonic Address R W Reset DMA y Source Address 23 16 Register DySA2R 0 0186 DMA Destination Addr 7 0 Register DyDAOR 0 0188 DMA Destination Addr 15 8 Register DyDAIR 0x0189 DMA y Destination Addr 23 16 Register DyDA2R 0x018A DMA y Link Address 7 0 Register DyLAOR 0x018C DMA Link Address 15 8 Register DyLAIR 0x018D DMA Link Address 23 16 Register DyLA2R 0 018 NOTE The y in DMA y expresses the DMA channel number 0 15 The I O address shown with an asterisk is the address of the DMA Channel 0 register To find the address of the corresponding register a different DMA channel refer to Table 24 1 Table 2
156. 292 Pinout Looking Through the Top of Package 429 digi com Rabbit 6000 User s Manual 38 1 2 Pinout 15mm x 15mm BGA 233 10 11 12 13 14 15 16 17 9 O O OF OF O OF OB O O O8 O OF O O O O O O O OF O O Of O O O O O O O OF O Oz O O Oi O O ot of Oz O O O O O O O o OF O O Oz O ot oi os O O O e O O Of O OF of O O O O3 O O oi of o o o oj lt m O Q u u 8 o OF OF O OF of O8 08 o O OF of O OF OF O oj OF ot Oj ob osiosioi OF O O Oz O1 O OF O O ot O of ot oi Og of of oto O O O O O of O of Ox oi 08 O ot ot ot OF O oj OF OF Of O oi of Os of o o o of ot of O O O O o o 0 03 O o OF OF ot ot O O O OF of ot oi oi oi Z gt m Ed 5 lt a Fd 5 lt a d 2 gt gt gt gt gt e N 0 0 0 Q x gt x a a 2 2 z o o x o o 0 6 is 2 ei eee o 0 e 0 o 9 0 0 ec e Figure 38 2 BGA 233 Pinout Looking Through the of Package 430 digi com Rabbit 6000 User s Manual 38 1 3 Mechanical Dimensions and Land Pattern TOP VIEW BOTTOM VIEW 4 5 6 7 8 9 10 11 12
157. 2R FACB3R FACB4R FACB5R FACB6R FACB7R FACB8R FACB10R FACB11R FACB12R FACB13R FACB14R FACB15R FIMA Control Byte x Register Address 0x6007 Address 0x6008 Address 0x6009 Address 0x600A Address 0x600B Address 0x600C Address 0x600D Address 0 600 Address 0x600F Address 0x6010 Address 0x6011 Address 0x6012 Address 0x6013 Address 0x6014 Address 0x6015 Address 0x6016 Bit s Value Description 7 0 User defined control bytes that are mapped to the data memory of the Flexible Interface Module processor Bytes 0 7 are mapped to data memory addresses 0 10 0 17 and bytes 8 15 are mapped to data memory addresses 0 90 0 97 These registers are read write for the Rabbit but read only for the FIM FAPEOR FAPE1R FAPE2R FAPE4R 5 FAPE6R FAPE7R 9 FAPE10R FAPE11R FAPE12R FAPE13R FAPE14R FAPE15R FIMA Port Expansion x Register Address 0x6017 Address 0x6018 Address 0x6019 Address 0 601 Address 0x601B Address 0x601C Address 0x601D Address 0x601E Address 0x602F Address 0x6020 Address 0x6021 Address 0x6022 Address 0x6023 Address 0x6024 Address 0x6025 Address 0x6026 Bit s Value Description 7 0 Read only User de
158. 3 EA PH6 C2 C3 PH5 H2 A2 PHA J2 E3 PH3 Input Output Parallel Port H K2 G4 PH2 L2 C2 PH1 G2 F4 PHO F1 D3 TX 6 5 TX Output Transmit 5 Input Receive pa RX P A3 A4 SPEED_LED C9 10 Ethernet TX_LED B10 All LINK_LED Output LEDS D9 C9 RX LED A10 D9 RSET 8 7 XTL_25MI Circuit Interface A2 C4 XTL_25MO Al D4 Rabbit 6000 User s Manual digi com 438 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 V8 R6 pe Outputs Antenna Select Outputs LNA Control _ PA2G_ON Output 2GHz PA Enable U6 5 5 Output 5GHz PA Enable V7 U3 RX_ON Output Receiver Enable Y3 Output Receiver High Power V4 N4 SCLK Output Serial Bus Clock U5 R3 WiFi SDATA Output Serial Bus Data V5 U2 SEN Output Serial Bus Enable WS T3 TX ON Output Transmitter Enable WA P4 VGA4 U7 T4 VGA3 W6 P6 VGA2 Output Amp Gain Control U8 R5 VGAI Y6 T5 VGAO W7 U4 XTL_20MI Input Y7 one Y8 LOCK Input Locked V6 R4 Rabbit 6000 User s Manual digi com 439 Table 38 3 Rabbit 6000 Pin Descriptions Pin Group Pin Name Direction Function BGA 292 Ball BGA 233 Ball VRXI Input Inphase Input Ul VRXI Input Inphase Input VI P1 VRXQ Input Quad
159. 35R eed e Ee 122 eo rere rere rea EO res 300 PDBOR 050058 123 NBGE2R 301 adt 123 301 ene 120 297 PDDCR 2 121 ET 296 PDDDR 121 NBCWR iius REEF EE 302 PDDR iet ettet EENE 119 hdc 295 PDER ines tero rere ote 121 iere e ees 303 Ote ele bie 124 303 555 132 302 PEALR 25 EP q 131 NBGIR z 22 L 2 2 reet etre 302 133 2 ode ve e vas 302 PEBIR Rr 133 NBLDDR ertet aS au reris 295 PEB2R eite Rr Rie 134 ER HR RENE REESE 303 PEB3R uuu u s u EFE 134 E 304 nnne te rr eO 134 1 eb ENDORSE E 299 eere enews 134 NBMPAR 304 135 2 20 ete E 304 a Zn a nus 135 NBMRER 305 eiie IRSE 132 NBMRMR
160. 38 PWM 0x80 Slave Port Sys User Mode Violation 0x90 Write Protect Violation Quadrature Decoder 0 Timer Input Capture OxBO Timer B Stack Limit Violation 0xC0 Serial Port A Serial Port E 0xD0 Serial Port B Serial Port F OxEO Serial Port C Network Port B Ethernet OxFO Serial Port D Timer C Rabbit 6000 User s Manual digi com 84 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 Offset 0x0000 Offset 0x0100 Offset 0x00 External Interrupt 0 0x10 External Interrupt 1 0x20 External Interrupt 2 0x30 External Interrupt 3 0x40 External Interrupt 4 Breakpoints 0x50 External Interrupt 5 0x60 External Interrupt 6 0 70 External Interrupt 7 0x80 DMA Channel 0 DMA Channel 8 0x90 DMA Channel 1 DMA Channel 9 0 DMA Channel 2 DMA Channel 10 0 0 DMA Channel 3 DMA Channel 11 0xC0 DMA Channel 4 DMA Channel 12 0xD0 DMA Channel 5 DMA Channel 13 0 0 DMA Channel 6 DMA Channel 14 OxFO DMA Channel 7 DMA Channel 15 Note that the breakpoint interrupt moved from its location in previous Rabbit processors to make room for the new external interrupt vectors Rabbit 6000 User s Manual digi com 85 There is a
161. 3FFFF 0x00000 A18 normals 4 A19 inverted x 0x40000 Ox3FFFF 0x00000 0x40000 Ox3FFFF 0x00000 Figure 5 4 Mapping Different Sections of a Memory Device Larger Than the Current Memory Bank It is possible to extend the timing of the OE and or WE strobes by one half of a clock This provides slightly longer strobes for slower memories see the timing diagrams in Chapter 37 These options are available in MTCR 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 Rabbit 6000 User s Manual digi com 63 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 8 bit mode is the default for all chip selects When in basic 8 bit mode the wait states are selected in the memory bank registers MBxCR the options 0 1 2 or 4 wait states Note that this may put an upper bound on the processor clock speed depending on the access time of your 8 bit memory device When in 16 bit or page mode either 8 or 16 bit the wait states are selected by both the MBxCR and the advanced chip select registers ACSxCR Table 5 2 Memory Modes Mode Byte Word Wor
162. 4 1 DMA Channel Specific Register Mapping Register Name DMA Channels 0 7 DMA Channels 8 15 0 15 8 2 8 DMA y Buffer Complete Register 0 01 3 0 0923 DMA y Termination Byte Register 0 01 8 0 0928 DMA y Termination Mask Register 0 01 9 0 0929 DMA y Buffer Unused 7 0 Register 0 0 0 092 DMA y Buffer Unused 15 8 Register 0 01 0 092 DMA y Initial Address 7 0 Register 0x01yC 0x09zC DMA y Initial Address 15 8 Register 0 01 0x09zD DMA y Initial Address 23 16 Register OxOlyE 0 092 DMA y Special Control Register 0 01 0 0 09 0 DMA Control Register 0 01 1 0 09 1 DMA y Buffer Length 7 0 Register 0x01v2 0x09y2 DMA y Buffer Length 15 8 Register 0x01v3 0x09y3 DMA y Source Address 7 0 Register 0x01v4 Ox09y4 DMA y Source Address 15 8 Register 0x01v5 0x09y5 DMA y Source Address 23 16 Register 0x01v6 0x09y6 DMA y Destination Addr 7 0 Register 0x01v8 0x09y8 DMA y Destination Addr 15 8 Register 0 01 9 0 09 9 DMA y Destination Addr 23 16 Register 0 01 Ox09yA DMA y Link Address 7 0 Register 0x01vC 0x09yC Rabbit 6000 User s Manual digi com 254 Register Name DMA Channels 0 7 DMA Channels 8 15 DMA y Link Address 15 8 Register 0x01vD 0x09yD DMA y Link Address 23 16 Register 0 01 Ox09yE 24 2 Dependencies 24 2 1 I O Pins External DMA Request 0 can b
163. 5 Ethernet clock 16 OVERVIEW Li ei 383 maximum clock speed 22 222 26 register descriptions 386 Operation MT 20 384 maa FC 16 ESD pin assignments 2 18 ESD sensitivity 9 power consumption 2 26 external VO DUS esee 348 register descriptions sess 28 psc 354 PE SISUETS AIME 17 handshake 354 sleepy clock modes 221221 2 27 uv 2 a 354 spectrum spreader 2 16 external I O control 348 block diagram tme 351 D CLOCK E S 353 design considerations dependencies eremi sins eterni 353 package onnenn 432 external I O DUS 1 348 divenne handshake 350 BGA package e 431 PREND P Y 354 DMA channels 249 Eeter a TIGR sicud block 252 Nan ARDAN 224 buffer descriptor 256 strobes 354 buffer descriptor modes e 260 348 channel priorities 2 259 register descriptions 355 Ces A 255 TEgIS eTS eee
164. 6 Register 284 DMA y Link Addr 7 0 Register 283 DMA y Source Addr 15 8 Register 280 DMA y Source Addr 23 16 Register 281 DMA y Source Addr 7 0 Register 280 DMA y Special Control Register 277 DMA y Termination Byte Register 272 DMA y Termination Mask Register 273 Error Check and Correction 384 ECC Control Register 4 1 387 ECC Count 0 Register 388 ECC Count 1 Register 388 ECC CP Read Register sss 387 ECC CP Read Shifted Register 387 ECC Data 0 Register 386 ECC Data 1 Register esse 386 ECC Data 2 Register 386 ECC Data 3 Register 386 ECC Write 0 Register 2 388 ECC Write 1 Register 388 ECC Write 2 Register 2 2 388 ECC Write 3 Register sse 388 external I O control sees 352 Bank x Control Register 357 Bank x Extended Register 358 Handshake Control Register 355 Handshake Select Register 355 Handshake Timeout Register 35
165. 6 Slave Port Control Register 359 external interrupts 2 89 Interrupt x Control Register 92 93 Flexible Interface Modules 370 FIMA Code LSB Register 377 FIMA Code MSB Register 377 FIMA Control Byte x Register 376 FIMA Data FIFO Register 374 FIMA FIFO Status Register 374 FIMA Inbound Interrupt Register 375 FIMA Interrupt Control Register 375 FIMA Outbound Interrupt Register 375 FIMA Port Expansion x Register 376 FIMA Rx Status FIFO Register 374 FIMB Code LSB Register 381 FIMB Code MSB Register 381 382 FIMB Control Byte n Register 380 FIMB Data FIFO Register 3T FIMB FIFO Status Register 378 FIMB Inbound Interrupt Register 379 FIMB Interrupt Control Register 379 FIMB Master Mode Register 379 FIMB Outbound Interrupt Register 378 FIMB Port Expansion n Register 380 FIMB Rx Status FIFO Register 377 peripheral 391 Serial Port G Bus Monitor 0 Register 401 Ser
166. 6 Parallel Port HH ette 154 Analog Component 1 MSB Registers 231 PWM Z REGE Ren betont E 343 multiplexed A D converter Quadrature Decoder 335 ADC Command Status Register 246 Rabbit 6000 11 ADC Control Register 247 36 ADC LSB Register eese 245 Serial Ports A D 186 ADC MSB Register see 245 Serial Ports 22222222 22 201 ADC x LSB Register eese 248 sl ve port schist eee teas 217 ADC MSB Register eee 248 system management 43 Operation sssseeseeeeneenn tenerent 232 243 163 ndun EE 231 241 170 sample circuits 22 233 244 Rex 177 slow A D converter USB host 2 317 Analog Component 2 Control Register 239 bosprp 35 Analog Component 2LSB Register 238 block diagram 36 Analog Component 2 MSB Register 238 depend nia ca 37 specifications 228 240 memory fetch uie tne estne 39 fast A D converter 228 onchip encryption SRAM e 40 fast D A converter 2 22 228 register descriptions 2 41 slow A D converter
167. 6000 User s Manual digi com 211 Serial Port x Status Register SESR Address 0x00CB SFSR Address 0 000 HDLC Mode Only Bit s Value Description 7 0 The receive data register is empty l There is a byte in the receive buffer The serial port will request an interrupt while this bit is set The interrupt is cleared when the receive buffer is empty 6 4 00 The byte in the receive buffer is data 01 The byte the receive buffer was followed by abort 10 The byte in the receive buffer is the last in the frame with valid CRC 11 The byte in the receive buffer is the last in the frame with a CRC error 5 0 The receive buffer was not overrun 1 The receive buffer was overrun This bit is cleared by reading the receive buffer 3 0 The transmit buffer is empty The transmit buffer is not empty The serial port will request an interrupt when l the transmitter takes a byte from the transmit buffer unless the byte is marked as the last in the frame Transmit interrupts are cleared when the transmit buffer is written or when any value which will be ignored is written to this register 2 1 00 Transmit interrupt due to buffer empty condition Transmitter finished sending CRC An interrupt is generated at the end of the 01 CRC transmission Data written in response to this interrupt will cause only one flag to be transmitted between frames and no interrupt will be genera
168. 7 There are two methods to receive a byte write 01 to bits 6 7 of SxCR to start the receive operation or read the byte from SxAR which will automatically start the transfer based on whether an internal or an external clock was selected NOTE If the internal clock is selected the clock will begin immediately and the data will be read if an external clock is selected the receive will occur when the clock is detected Rabbit 6000 User s Manual digi com 191 A sample clocked serial interrupt handler for a master shown below for Serial Port B clocked_serb_isr push af save used registers 101 14 SBSR get status bit a 7 check if byte ready in RX buffer push af Save status for next check jr z check for tx rx ready ioi ld a SBDR read byte and clear interrupt do something with received byte here ld a 0 4 Set bits 6 7 to O1 the other bits should represent the desired SBCR setup Parallel Port C internal clock Interrupt Priority 1 in this example ioi ld SBCR a Start a new receive operation check for tx pop af bat 353 check if TX buffer was emptied jr nz done get next byte to be transmitted into Register A here load TX buffer with next byte clear interrupt and start transmission ioi 14 SBAR done pop af restore used registers ipres ret Rabbit 6000 User s Manual digi com 192 19 4 Register Descripti
169. 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 3 2 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 These bits are reserved and should be written with zeros Rabbit 6000 User s Manual digi com 82 6 INTERRUPTS 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 Every time an interrupt is handled or IPSET instruction occurs the value in the register is shifted left by two bits and the new priority placed in bits 0 1 When an IPRES or IRET instruction occurs the value in IP is shifted right by two bits bits 0 1 are shifted into bits 6 7 On reset the processor starts at Priority 3 Most interrupts can be set to be Priority 1 3 A pending interrupt will be handled only if its interrupt prior ity is greater than the current processor priority This means that even a Priority 3 interrupt can be blocked if the processor is currently at Priority 3 The System Mode Violation Stack Limit Violation Write Protec tion Violation secondary watchdog and breakpoint interrupts are always enabled at Priority 3 In addition when
170. 7 of FAIIR wait for FIMA to clear the interrupt code in FAOIR and then clear bit 7 of FAIIR Flexible Interface Module B Write a 1 to bit 7 of FBIIR wait for FIMB to clear the interrupt code in FBOIR and then clear bit 7 of FBIIR A D Converter Read from ADCLR Serial Port B Rx Read from SEDR or SEAR Tx Write to SEDR SEAR SELR or dummy write to SESR Serial Port F Rx Read from SFDR or SFAR Tx Write to SFDR SFAR SFLR or dummy write to SFSR Serial Port G PC Remove the interrupting condition Serial Port A Rx Readfrom SADR or SAAR Tx Write to SADR SAAR SALR or dummy write to SASR Serial Port B Rx Read from SBDR or SBAR Tx Write to SBDR SBAR SBLR or dummy write to SBSR Serial Port C Rx Read from SCDR or SCAR Tx Write to SCDR SCAR SCLR or dummy write to SCSR Serial Port D Rx Read from SDDR or SDAR Tx Write to SDDR SDAR SDLR or dummy write to SDSR Rabbit 6000 User s Manual digi com 86 7 EXTERNAL INTERRUPTS 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 total of up to 12 external interrupt inputs out of 22 pos sible pins In the case of multiple interrupts sharing an interrupt vector for interrupts 0 or 1 the data regis ter corresponding to the parallel port s being used can be read Each interrupt vector can be set to trigger o
171. 8 bit value The real time clock is not synchronized to the read operation so the least significant byte should be read twice and checked for matching values if the two reads do not match then the real time clock may have been updating during the read and should be read again Writing to RTCOR latches the current real time clock value into the RTCxR holding registers so the fol lowing sequence should be used to read the real time clock 1 Write any value to RTCOR and then read back a value from RTCOR 2 Write a value to RTCOR again and again read back a value from RTCOR 3 If the two values do not match repeat Step 2 until the last two readings are identical 4 At this point registers RTCIR through RTC R can also be read and used Note that the periodic interrupt and the real time clock are clocked by the same edge of the 32 kHz clock if read from the periodic interrupt the count is guaranteed to be stable and only needs to be read once assuming it occurs within one clock of the 32 kHz clock The real time clock can be reset by writing the sequence 0x40 0x80 to RTCCR It can be reset and left in the byte increment mode by writing 0x40 OxCO 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 Rabbit 6000 User s Manual digi com 46 4 3 3 Watchdog Timer The watchdog timer is enabled on reset with a
172. 9E1 D15CR Address 0x09F1 Bit s Value Description 7 0 Continue to next buffer descriptor 1 Final buffer descriptor Stop DMA operation upon completion of this transfer 6 0 Use sequential address for next buffer descriptor The link address field is not present in this buffer descriptor which is now 12 bytes long l Use the link address field as a pointer to the next buffer descriptor This buffer descriptor is 16 bytes long 5 0 No special treatment for last byte Internal Source status byte written to initial buffer descriptor before last data 1 Internal Destination Last byte written to offset address for frame termination All others No effect 4 0 No interrupt on completing this transfer 1 Interrupt on completing this transfer 3 2 00 Source address is fixed internal I O two byte address 01 Source address is fixed external I O two byte address 10 Source address is memory three byte address auto decrement 11 Source address is memory three byte address auto increment 1 0 00 Destination address is fixed internal I O two byte address 01 Destination address is fixed external I O two byte address 10 Destination address is memory three byte address auto decrement 11 Destination address is memory three byte address auto increment Rabbit 6000 User s Manual digi com 278 DMA y Length 7 0 Register DOLOR Address 0x0182 D1LOR Address 0x0192 D2LOR Address z 0x01A2
173. A converter Read These bits always return zeros when read Analog Component 1 Control Register A1CR Address z 0x0814 Bit s Value Description 7 0 Use peripheral clock as fast D A converter clock source 1 Use Parallel Port PD5 fast D A converter clock source 6 4 000 Clock divided by 2 001 Clock divided by 4 010 Clock divided by 8 011 Clock divided by 16 100 Clock divided by 32 101 Clock divided by 64 110 Clock divided by 128 111 Clock divided by 256 3 This bit is reserved and should be written as zero 2 0 Fast D A converter uses 2 s compliment coding 1 Fast D A converter uses binary encoding 1 0 00 Fast D A converter powered down 01 Fast D A converter in sleep mode 10 This bit combination is reserved and should not be used 11 Fast D A converter active Rabbit 6000 User s Manual digi com 237 Analog Component 2 LSB Register A2LR Address 0x0820 Bit s Value Description The current value of the three least significant bits of the slow A D 7 5 Read converter are returned Reading this register locks the value in the corresponding MSB register to guarantee that the full 11 bits are valid Write Writes to this register are ignored 4 0 These bits are ignored and will always return zeros when read 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
174. A counter counts down to zero The timer counts modulo n 1 where n is the programmed time constant Rabbit 6000 User s Manual digi com 168 17 TIMER B 17 1 Overview The Timer B peripheral consists of a ten bit free running up counter two match registers and two step registers Timer is driven by perclk 2 perclk 16 or by the output of Timers 1 or 11 Timer gen erates an output pulse whenever the counter reaches the match value This output pulse can generate an interrupt and will set a status bit in the status register The processor may then write a new value to the match register This allows Timer B to be used for pulse width or pulse position modulation because the outputs of Timer B can clock the outputs on Parallel Ports D G The compare value comes from either the match register or the value internally generated via the step reg ister When using the match register a new match value must be written to the match register after each match condition LSB last When using the step register the hardware automatically calculates the next match value by adding the contents of the step register to the current match value This allows Timer B matches to be generated at regular periods without calculating the new match value during the interrupt service routine The match registers are buffered if a match value is loaded and then another one is loaded before the match has occurred the new value will be bu
175. A0 D11SCR Address 0x09B0 D12SCR Address 0 09 0 D13SCR Address 0x09DO D14SCR Address 0x09E0 D15SCR Address 0x09F0 Bit s Value Description 7 6 00 Normal DMA operation 01 Normal DMA operation 10 Enable DMA for automatic Network Port D USB receive channel operation Enable DMA for automatic Network Port D USB transmit channel operation 5 This bit is reserved and must always be read as zero 4 0 Enable Bus Sharing Mode 1 Enable Bus Interleaving Mode 3 0 Auto connect source DMA request DMA will only transfer when source s DMA transfer request is active 1 Disconnect source DMA request DMA will transfer full buffer size 2 0 Normal source address 1 Source address fixed independent of type 1 0 Auto connect destination DMA request 1 Disconnect destination DMA request full buffer transfer 0 0 Normal destination address 1 Destination address fixed independent of type Rabbit 6000 User s Manual digi com 277 DMA y Control Register DOCR Address 0x0181 D1CR Address 0x0191 D2CR Address 0x01A1 D3CR Address 0x01B1 D4CR Address 0x01C1 D5CR Address 0x01D1 D6CR Address 0x01E1 D7CR Address 0x01F1 D8CR Address 0x0981 D9CR Address 0x0991 D10CR Address 0x09A1 D11CR Address 0x09B1 D12CR Address 0x09C1 D13CR Address 0x09D1 D14CR Address 0x0
176. A0D 00000000 Network Port RSSI 2 Register NCRSSI2R 00000000 Network Port RSSI 3 Register NCRSSIBR OxOAOF 00000000 Network Port C Interrupt Mask Register NCIMR 0 0 10 00000000 Network Port Interrupt Status Register NCISR 0 0 14 00000000 Network Port SPI Data 0 Register NCSPIDOR 0x0A18 W 00000000 Network Port SPI Data 1 Register NCSPIDIR 0 0 19 W 00000000 Network Port C SPI Data 2 Register NCSPID2R OxOAIA W 00000000 Network Port C SPI Data 3 Register NCSPID3R W 00000000 Network Port SPI Control Register NCSPICR OxOAIC R W 00011000 Network Port C Data FIFO 0 Register NCDFR 0 0 20 00000000 Network Port Configuration 1 Register 0 NCCIRO 0x0A28 R W 00101100 Network Port C Configuration 1 Register 1 NCCIRI 0x0A29 R W 00000000 Network Port C Configuration 1 Register 2 NCCIR2 0x0A2A R W 01000011 Network Port C Configuration 1 Register 3 2 10000000 Network Port Configuration 2 Register 0 NCC2RO 0x0A2C R W 00010100 Network Port C Configuration 2 Register 1 NCCORI 0x0A2D R W 10110011 Network Port C Configuration 2 Register 2 NCC2R2 2 10000010 Rabbit 6000 User s Manual digi com 311 Register Name Mnemonic I O Address R W Reset Network Port C Configuration
177. A1R Address 0x017D D8IA1R Address 0x090D D9IA1R Address 0x091D D10IA1R Address 0x092D D111A1R Address 0x093D 0121 1 Address 0x094D D13IA1R Address 0x095D D141A1R Address 0x096D D15IA1R Address 0x097D Bit s Value Description 7 0 Bits 15 8 of the initial address are stored in this register Rabbit 6000 User s Manual digi com 275 DMA y Initial Addr 23 16 Register DOIA2R Address 0x010E D1IA2R Address 0x011E D2IA2R Address 0x012E D3IA2R Address 0x013E D4IA2R Address 0x014E D5IA2R Address 0x015E D6IA2R Address 0x016E D7IA2R Address 0x017E D8IA2R Address 0x090E D9IA2R Address 0x091E 0101 2 Address 0 092 0111 2 Address 0x093E D121A2R Address 0x094E D13IA2R Address 0x095E 0141 2 Address 0x096E D15IA2R Address 0x097E Bit s Value Description 7 0 Bits 23 16 of the initial address are stored in this register Rabbit 6000 User s Manual digi com 276 DMA y Special Control Register DOSCR Address 0x0180 D1SCR Address 0x0190 D2SCR Address 0x01A0 D3SCR Address 0 01 0 D4SCR Address 0 01 0 D5SCR Address 0x01D0 D6SCR Address 0x01E0 D7SCR Address 0x01F0 085 Address 0 0980 D9SCR Address 0x0990 D10SCR Address 0x09
178. AT3R 0x00A7 R W XXXXXXXX Timer A Time Constant 9 Register TAT9R 0x00A8 Timer Time Constant 4 Register TAT4R 0 00 9 Timer A Time Constant 10 Register TATIOR 0x00AA Timer Time Constant 5 Register TATSR 0 00 Timer Time Constant 11 Register TATIIR 0 00 00000000 Timer Time Constant 6 Register TAT6R 0x00AD Timer A Time Constant 12 Register TAT12R 0 00 00000000 Timer A Time Constant 7 Register TAT7R 0 00 Rabbit 6000 User s Manual digi com 164 16 2 Dependencies 16 2 1 I O Pins The Timer A outputs do not come out directly on any of the I O pins They can be used to control when the output occurs on Parallel Ports generate the baud rates of Serial Ports and used to clock the PWM input capture and quadrature decoder They can also be used as input clocks for Timers B and C 16 2 2 Clocks The timers in Timer A are clocked by the Timer A Prescaler TAPR In addition Timers A2 A7 can be clocked by the output of Timer A1 by selecting that option in TACSR and Timers A8 A11 can be clocked by the output of timer A12 by selecting that option in TAECR 16 2 3 Other Registers Register Function GCSR Select peripheral clock mode 16 2 4 Interrupts A Timer A interrupt can be generated when
179. Auto Load MSB Register DMALMR Address 0x0111 Bit s Value Description 7 0 0 No effect on the corresponding DMA channel 15 8 Start using auto load the corresponding DMA channel 15 8 using the buffer wr only 1 descriptor in memory addressed by the channel Initial Address Register This command should only be issued after the Initial Address has been loaded 7 0 0 The corresponding DMA channel 15 8 is either disabled or has completed the last buffer descriptor The corresponding DMA channel 15 8 is enabled and active These bits are set rd only 1 by the Start command and remain set until the completion of the last buffer or receipt of a Halt command DMA Master Halt LSB Register DMHLR Address 0x0120 Bit s Value Description 7 0 0 No effect on the corresponding DMA channel 7 0 l Halt the corresponding DMA channel 7 0 The DMA registers retain the current state and the DMA can be restarted using DMCSLR DMA Master Halt MSB Register DMHMR Address z 0x0121 Bit s Value Description 7 0 0 No effect on the corresponding DMA channel 15 8 1 Halt the corresponding DMA channel 15 8 The DMA registers retain the current state and the DMA can be restarted using DMCSMR Rabbit 6000 User s Manual digi com 265 DMA y Buffer Complete Register DOBCR Address 0x0103 D1BCR Address 0x0113 D2BCR Address 0x0123
180. B B3CR Address 0x033B B4CR Address 0x034B B5CR Address 0x036B B6CR Address 0x037B Bit s Value Description 7 6 00 No Breakpoint x on execute address match 01 Breakpoint x User Mode execute address match 10 Breakpoint x on System Mode execute address match 11 Breakpoint x on System or User Mode execute address match 5 4 00 No breakpoint x on data read address match 01 Breakpoint x User Mode data read address match 10 Breakpoint x on System Mode data read address match 11 Breakpoint x on System or User Mode data read address match 3 2 00 No breakpoint x on write address match 01 Breakpoint x on User Mode write address match 10 Breakpoint x on System Mode write address match 11 Breakpoint x on System or User Mode write address match 1 0 These bits are reserved and should be written with zeros Rabbit 6000 User s Manual digi com 365 Breakpoint x Address 0 Register BOAOR Address 0x030C B1A0R Address 0x031C B2A0R Address 0x032C B3A0R Address 0x033C B4A0R Address 0x034C B5A0R Address 0x036C B6A0R Address 0x037C Bit s Value Description 7 0 Breakpoint x Address 7 0 Breakpoint x Address 1 Register BOA1R Address 0x030D B1A1R Address 0x031D B2A1R Address 0x032D B3A1R Address 0x033D B4A1R Address 0x034D B5A1R Address 0x036D B6A1R Address 0x037D
181. B Phys Addr 31 24 Register NBPA3R 0x0213 w XXXXXXXX Network Port B Phys Addr 39 32 Register NBPA4R 0x0214 w XXXXXXXX Network Port B Phys Addr 47 40 Register NBPASR 0x0215 w XXXXXXXX Network Port B Multicast Filter 7 0 Register NBMF0R 0x0218 R W XXXXXXXX Network Port B Multicast Filter 15 8 Register NBMFIR 0x0219 R W XXXXXXXX Network Port B Multicast Filter 23 16 Register NBMF2R 0 021 R W XXXXXXXX Network Port B Multicast Filter 31 24 Register NBMF3R 0x021B R W XXXXXXXX Network Port B Multicast Filter 39 32 Register NBMF4R 0x021C R W XXXXXXXX Network Port B Multicast Filter 47 40 Register NBMF5R 0x021D R W XXXXXXXX Network Port B Multicast Filter 55 48 Register NBMF6R 0 021 R W XXXXXXXX Network Port B Multicast Filter 63 56 Register NBMF7R 0 021 R W XXXXXXXX Network Port B Direct Rx Register NBDRR 0x0228 R XXXXXXXX Network Port B Direct Tx Register NBDTR 0x0229 XXXXXXXX Network Port B Direct MII Register NBDMR 0x022A R W XXXXXXXX Network Port B Configuration 0 Register NBCFOR 0x0240 00000000 Network Port Configuration 1 Register NBCFIR 0x0241 R W 00000000 Network Port B Configuration 2 Register NBCF2R 0 0242 00000000 Rabbit 6000 User s Manual digi com 288 Register Name Mnemonic I O Address R W Reset Network Port B Configuration 3 Register NBC
182. C CRC calculation Rabbit 6000 User s Manual digi com 386 ECC Conirol Register ECCR Address 0x05C4 Bit s Value Description 7 0 Disable and initialize ECC CRC 1 Enable ECC CRC 6 0 Read data not inverted 1 Read data inverted 5 0 Initial value is all zeros 1 Initial value is all ones 4 3 These bits are reserved and must be written as zero Reads return zero 2 0 000 ECC 256 to 64 KB blocks 001 CRC 32 IEEE 802 010 CRC 16 IBM USB 011 CRC 16 CCITT 100 CRC 15 CAN 101 This bit combination is reserved and should not be used 110 This bit combination is reserved and should not be used 111 This bit combination is reserved and should not be used ECC CP Read Register ECPR Address 0x05C5 Bit s Value Description 7 6 These bits are reserved and should be written with zeros 7 0 Read 100 CP value Write 00 CP set value ECC CP Read Shifted Register ECPSR Address 0x05C6 Bit s Value Description 7 0 Read CP value 00 Write 00 CP set value Rabbit 6000 User s Manual digi com 387 ECC Write 0 Register ECWOR Address 0x05C7 Bit s Value Description 7 0 Read LP CRC bits 24 31 used for reverse bit order cases Write Set th
183. C are stored Timer C Divider High Register TCDHR Address 0x0503 Bit s Value Description 7 0 The eight MSBs of the divider limit value for Timer C are stored Rabbit 6000 User s Manual digi com 181 Timer C Set x Low Register TCSOLR TCS1LR TCS2LR TCS3LR Address 0x0508 Address 0x050C Address 0x0518 Address 0x051C Bit s Value Description 7 0 Eight LSBs of the match value to set Timer C Output x Timer C Set x High Register TCSOHR TCS1HR TCS2HR TCS3HR Address 0x0509 Address 0x050D Address 0x0519 Address 0x051D Bit s Value Description 7 0 Eight MSBs of the match value to set Timer C Output x Timer C Reset x Low Register TCROLR TCR1LR TCR2LR TCR3LR Address 0x050A Address 0x050E Address 0x051A Address 0x051E Bit s Value Description 7 0 Eight LSBs of the match value to reset Timer C Output x Timer C Reset x High Register TCROHR TCR1HR TCR2HR TCR3HR Address 0x050B Address 0x050F Address 0x051B Address 0x051F Bit s Value Description 7 0 Eight MSBs of the match value to reset Timer C Output x Rabbit 6000 User s Manual digi com 182 sequence Timer Block Access Register TCBAR Addr
184. C002 0xC000 for the I6 strobe and 0x0002 for SPD2R on that slave 2 If the master is writing multiple bytes it should write to SPDOR last since that will trigger an inter rupt on the slave device If only one byte is being sent it should be written to SPDOR 3 The slave responds to the interrupt reading the data from the slave port data registers 21 3 4 Slave Master Communication 1 The slave writes data to the appropriate slave port data register If it is writing multiple bytes SPDOR should be written last which enables the SLVATTN line 2 The master receives an external interrupt from the SLVATTN line and reads the data out of the slave port data registers via external I O reads on the data bus 21 3 5 Handling Interrupts The interrupt request on the slave is cleared by either the master or the slave accessing one of the slave port registers To clear the interrupt without affecting the register values a dummy write can be made to SPSR 21 3 6 Example ISR A sample interrupt handler is shown below slave isr push af Save used registers read the data sent by the master ioi ld a SPD2R 14 to 81 42 ioi ld 5 1 ld to 81 41 a 101 14 SPDOR ld to 51 if a response is required perform it here ld a to mas 42 ioi ld SPD2R a ld a to mas dl ioi 1 SPDI1R a ld a to_mas_d0 ioi ld SPDOR a this write asserts SLVATI
185. CR Reset PHY ENPR Enable 10 100 Ethernet functionality Rabbit 6000 User s Manual digi com 290 25 2 4 Interrupts The network interrupt can be generated by an Ethernet frame being transmitted correctly trans mitted with an error or if a transmit pause occurs control frame is transmitted but not the data The events that generate an interrupt can be selected in NBCSR The receive frame status is attached to the end of the data frame itself so the DMA interrupt can be used to handle received frame See Section 25 3 for more details The network port interrupt vector is located in the at offset 0 1 It can be set at Priority 1 2 or 3 by writing to NBCSR 25 3 Operation High level support for TCP IP and other protocols is beyond the scope of this manual but this section will describe the low level setup and operation of the 10 100Base T Ethernet peripheral Dynamic C has the necessary drivers The contents of the six status bytes are shown below Note that any status block marked with RxOV receive overflow is invalid as the FIFO could not hold the entire frame Only the marked frame is invalid so any previous frames read from the FIFO are fine Once an overflow is detected no subsequent frames can be buffered to the FIFO until a FIFO purge command is writ ten to the NBCR Status Byte Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 First LSB o
186. CSMR Address 0x0101 Bit s Value Description 7 0 0 No effect on the corresponding DMA channel 15 8 Start or restart the corresponding DMA channel 15 8 using the Write 1 contents of the DMA channel registers This command should only be only issued after all the DMA channel registers source destination length and link if applicable have been loaded 7 0 0 The corresponding DMA channel 15 8 is either disabled or has completed the last buffer descriptor The corresponding DMA channel 15 8 is enabled and active These bits Read only 1 are set by the start command and remain set until the completion of the last buffer DMA Master Auto Load LSB Register DMALLR Address 0x0110 Bit s Value Description 7 0 0 No effect on the corresponding DMA channel 7 0 Start using auto load the corresponding DMA channel 7 0 using the buffer wr only 1 descriptor in memory addressed by the channel Initial Address Register This command should only be issued after the Initial Address has been loaded 7 0 0 The corresponding DMA channel 7 0 is either disabled or has completed the last buffer descriptor The corresponding DMA channel 7 0 is enabled and active These bits are set rd only 1 by the Start command and remain set until the completion of the last buffer or receipt of a Halt command Rabbit 6000 User s Manual digi com 264 DMA Master
187. DAC w BE VOUT W11 VOUT W12 GND W13 Figure 22 2 Sample Fast D A Converter Circuit Rabbit 6000 User s Manual digi com 233 ANALOG S_AD_D33VSLOW VIN INPUT ADC Ferrite S AD D3 3V not connected not connected GND U16 V17 Figure 22 3 Sample Slow A D Converter Circuit Rabbit 6000 User s Manual digi com 234 22 6 Register Descriptions Analog Component 01 LSB Register AOILR Address 0x0800 Analog Component 0 Q LSB Register A0QLR Address 0x0802 Bit s Value Description The current value of the two least significant bits of the fast A D 7 6 Read converter are returned Reading this register locks the value in the corresponding MSB register to guarantee that the full 10 bits are valid Write Writes to these bits are ignored 5 0 These bits are ignored and will always return zeros when read Analog Component 0 MSB Register AOIMR Address 0x0801 Analog Component 0 Q MSB Register Address 0x0803 Bit s Value Description The current value of the eight most significant bits of the fast A D 7 0 Read converter are returned Write Writes to this register are ignored Rabbit 6000 User s Manual digi com 235 Analog Component 0 Control Register AOCR Address 0x0804 Bit s Value Description 7 0 Use peripheral clock as
188. EGH Address 0x001B Bit s Value Description 74 These bits are reserved and should always be written as zero These bits always return zeros when read 3 0 Read current contents of this register are reported Write Four MSBs of physical address offset to use if SEGSIZ 7 4 lt Addr 15 12 lt OxE Data Segment Register DATSEG Address 0x0012 Bit s Value Description 7 0 Read current contents of this register are reported Write Eight LSBs MSBs are set to zero by write of physical address offset to use if SEGSIZ 3 0 lt Addr 15 12 lt SEGSIZ 7 4 Rabbit 6000 User s Manual digi com 69 Data Segment Low Register DATSEGL Address 0x001E Bit s Value Description 7 0 Eight LSBs of physical address offset to use if SEGSIZ 3 0 lt Addr 15 12 SEGSIZ 7 4 Data Segment High Register DATSEGH Address 0x001F Bit s Value Description 7 4 These bits are reserved and should always be written as zero These bits always return zeros when read 3 0 Four MSBs of physical address offset to use if SEGSIZ 3 0 lt 1 Addr 15 12 SEGSIZ 7 4 Segment Size Register SEGSIZ Address 0x0013 Bit s Value Description 7 0 Read current contents of this register are reported 7 4 Write Boundary value for switching from DATSEG to STACKSEG for translation 3 0 Write Boundary value for switching from none to DATSEG for t
189. F3R 0x0243 R W 00000000 Network Port B Gap 0 Register NBGOR 0 0244 00000000 Network Port Gap 2 Register NBG2R 0x0246 R W 00000000 Network Port Gap 1 Register NBGIR 0 0247 00000000 Network Port Retransmit Max Register NBRMR 0x0248 R W 00000000 Network Port B Collision Window Register NBCWR 0x0249 R W 00000000 Network Port B Frame Limit LSB Register NBFLLR 0 024 00000000 Network Port Frame Limit MSB Register NBFLMR 0 024 R W 00000000 Network Port B MII Configuration Register NBMCFR 0x0250 R W 00000000 Network Port B MII Reset Register NBMRR 0 0251 00000000 Network Port MII Command Register NBMCR 0 0252 R W 00000000 Network Port B MII Register Address Register NBMRAR 0x0254 R W 00000000 Network Port B MII PHY Address Register NBMPAR 0 0255 00000000 Network Port Write LSB Register NBMWLR 0x0256 w 00000000 Network Port B MII Write MSB Register NBMWMR 0x0257 00000000 Network Port B MII Read LSB Register NBMRLR 0 0258 R 00000000 Network Port B MII Read MSB Register NBMRMR 0 0259 R 00000000 Network Port B MII Status Register NBMSR 0 025 00000000 Network Port Station Address 0 Register NBSAOR 0x0260 R W 00000000 Network Port B Station Address 1 Register NBSAIR 0x0261 R W 00000000 Network Port B Station Address 2 Register NBSA2R 0x0262 R W 00000000 Network Port B Station Address 3 Register NBSA3R 0x0263 R W 00000000 Network Port B Station Ad
190. Functions Pin Name Alt Out 0 Alt Out 1 Alt Out 2 Alt Out 3 PG7 FIMB7 17 PWM3 SCLKC PG6 FIMB6 16 PWM2 TXE 5 FIMB5 I5 PWMI RCLKE PG4 FIMB4 I4 PWMO TCLKE PG3 FIMB3 I3 TIMER C3 SCLKD PG2 FIMB2 12 TIMER C2 TXF FIMB1 TIMER RCLKF PGO FIMBO 10 TIMER CO TCLKF Rabbit 6000 User s Manual digi com 145 Table 14 2 Parallel Port G Pin Alternate Input Functions Pin Name ZE FIM PG7 INT2 7 FIMB7 PG6 INT2 7 FIMB6 5 INT2 7 FIMB5 PG4 INT2 7 FIMB4 PG3 INT2 7 FIMB3 PG2 INT2 7 FIMB2 PGI INT2 7 FIMBI PGO INT2 7 FIMBO 14 1 1 Block Diagram Parallel Port G PGDR Serial Ports C F Tx Rx Clocks External I O Strobes PWM Output Timer C Output External Interrupts perclk TimerAT ss Timer B1 TimerB2 0 Rabbit 6000 User s Manual digi com 146 14 1 2 Registers Register Name Mnemonic I O Address R W Reset Port G Data Register PGDR 0x0048 Port Alternate Low Register PGALR 0x004A R W 00000000 Port G Alternate High Register PGAHR 0x004B R W 00000000 Port G Control Register PGCR 0x004C R W xx00xx00 Port G Function Register PGFR 0x004D R W 00000000 Port G Drive Control Register PGDCR 0 004 00000000 Port G Data Direction Register PGDDR 0x004F R W 00000000 Port Gx Control Register PGxCR 0x04C8 x W xxx00000
191. Hz clock optionally divided via GPSCR Peripheral clock from the 32 kHz clock optionally divided via GPSCR Processor clock from the 32 kHz clock optionally divided via GPSCR 101 Peripheral clock from the 32 kHz clock optionally divided via GPSCR The fast clock is disabled 110 Processor clock from the fast clock divided by 4 Peripheral clock from the fast clock divided by 4 ul Processor clock from the fast clock divided by 6 Peripheral clock from the fast clock divided by 6 00 Periodic interrupts are disabled 01 Periodic interrupts use Interrupt Priority 1 1 0 10 Periodic interrupts use Interrupt Priority 2 11 Periodic interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 413 Global Power Save Control Register GPSCR Address 0x000D Bit s Value Description 000 Self timed chip selects are disabled 001 345nS self timed chip selects for read and write 010 255nS self timed chip selects for read and write 011 165nS self timed chip selects for read and write 100 435nS self timed chip selects for read only 101 345nS self timed chip selects for read only 110 255nS self timed chip selects for read only 111 165nS self timed chip selects for read only 0 Normal Chip Select timing for read cycles 1 Short Chip Select timing for read cycles not available in full speed 0 Normal Chip Select timing for write cycles
192. I encoding guarantees at least one transition every six bits with the inserted zeros Since the DPLL can adjust by two Rabbit 6000 User s Manual digi com 207 counts every bit cell the maximum difference between the sending data rate and the DPLL output clock rate is 1 48 2 With biphase data encoding either biphase level biphase mark or biphase space the DPLL runs only as long as transitions are present in the receive data stream Two consecutive missed transitions causes the DPLL to halt operation and wait for the next available transition This mode of operation is necessary because it is possible for the DPLL to lock onto the optional transitions in the receive data stream Since they are optional they will eventually not be present and the DPLL can attempt to lock onto the required transitions Since the DPLL can adjust by one count every bit cell the maximum difference between the sending data rate and the DPLL output clock rate is 1 16 6 With biphase data encoding the DPLL is designed to work in multiple access conditions where there might not be flags on an idle line The DPLL will generate an output clock correctly based on the first transition in the leading zero of an opening flag Similarly only the completion of the closing flag is necessary for the DPLL to provide the extra two clocks to the receiver to assemble the data correctly The transition is specified as follows e In the biphase level mode this means
193. IL INT2 7 FIMB6 E PGS INT2 7 FIMB5 PG4 INT2 7 FIMB4 PG3 INT2 7 FIMB3 PG2 INT2 7 FIMB2 PG1 INT2 7 FIMBI PGO INT2 7 FIMBO Rabbit 6000 User s Manual rabbit com 445 Numerics Error Check and Correction 384 external control 2 351 92 CLOCK 26 external interrupts 88 oscillator circuit sese 26 Flexible Interface Modules 369 A Pc peripheral 390 input capture channels 323 analog components 2 227 memory management e 57 block 230 241 Network Port 287 CLOCKS cise aate tust nie Geese 231 242 Network POrt C 310 dependencies sarsii 231 242 Parallel Port A ertet 95 fast A D converter Parallel Port B 101 Analog Component 0 Control Register 236 Parallel 1 etg 107 Analog Component 0 LSB Registers 235 Parallel Port D rtt tentes 115 Analog Component MSB Registers 235 Parallel Port E ua res 127 fast D A converter Parallel Port eee 138 Analog Component 1 Control Register 237 Parallel Port Gr 146 Analog Component 1 LSB Registers 23
194. Interrupts 11 3 Operation 11 4 Register Descriptions 12 Parallel Port E 12 1 0444422 12 1 1 Block Diagram 12 1 2 Registers 12 2 Dependencies 12 2 1 VO Pins e 12 2 2 Clocks eee 12 2 3 Other Registers 12 2 4 Interrupts 12 3 Operation 12 4 Register Descriptions 13 Parallel Port F 13 1 13 1 1 Block Diagram 13 1 2 Registers 13 2 1321 VO Pins ee ente 13 22 CloCKS i erret e 13 2 3 Other Registers 13 2 4 Interrupts 13 3 Operation iere 13 4 Register Descriptions 14 Parallel Port G 14 1 14 1 1 Block Diagram 14 1 2 Registers 2 1444 422 14 2 142 1 VO PINS ies oit enters 14 22 Clocks ueteres 14 2 3 Other Registers 2 14 2 4 Interrupts 14 3 Operation tereti pene 14 4 Register Descriptions 15 Parallel Port H 15 1 Overview tete 15 1 1 Block Diagram
195. LR 0x10 a stack limit violation interrupt is generated Stack High Limit Register STKHLR Address 0x0446 Bit s Value Description Upper limit for stack limit checking If a stack operation or stack relative 7 0 memory access is attempted at an address greater than STKHLR OxEF a stack limit violation interrupt is generated Address Bus Pin Conirol Register ADPCR Address 0x04A0 Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 3 2 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 These bits are reserved and should be written with zeros Rabbit 6000 User s Manual digi com 80 Data Bus Pin Conirol Register DBPCR Address 0x04A1 Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 3 2 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 00 No pullup or pulldown resistors 01 75 KQ pullup resistor 10 75 KQ pulldown resistor 11 75 KQ keeper Rabbit 6000 User s Manual digi com 81 Control Pin Control Register CPCR Address 0x04A2 Bit s Value Description
196. MSB of MII write data Writing to this register triggers an MII write cycle Network Port B MII Read LSB Register NBMRLR Address 0x0258 Bit s Value Description 7 0 LSB of MII read data Network Port MII Read MSB Register NBMRMR Address 0x0259 Bit s Value Description 7 0 MSB of MII read data Network Port Status Register NBMSR Address 0x025A Bit s Value Description 7 4 These bits are ignored and will always return zeros when read 3 0 MII link okay 1 MII link fail 2 0 MII read data valid 1 MII read data not valid 1 0 not busy scanning 1 MII scan operation in progress 0 0 MII not busy performing a read or write cycle 1 MII busy performing a read or write cycle Rabbit 6000 User s Manual digi com 305 NBSAOR NBSA1R NBSA2R NBSA3R NBSA4R NBSA5R Network Port B Station Address x Register Address 0x0260 Address 0x0261 Address 0x0262 Address 0x0263 Address 0x0264 Address 0x0265 Bit s Value Description 7 0 Byte of physical address for transmit control frames Rabbit 6000 User s Manual digi com 306 Master System Configuration Register MSCR Address 0x0434 Bit s Value Description 7 0 CPU clock direct from oscillator CPU clock from system PLL output divided by two Response to this 1 setting may be delayed until the PLL output is
197. N the interrupt request is cleared by any read write of the registers pop af restore used registers ipres ret Rabbit 6000 User s Manual digi com 221 21 3 7 Other Configurations There are other slave port configurations possible The master could use the external I O bus instead of the memory bus All devices could poll the slave port status register to determine when data is present instead of relying on interrupts The master could write to SPDOR triggering an interrupt on the slave The slave could then simply write a response into SPDOR which the master detects by polling SPSR This configuration is useful when fewer signals are desired or the master device has no external interrupts available If polling is to be used it is important to note that not all bits in the status register may be updated at once it is possible to read a transitional value as the register updates To guarantee a proper polling read the sta tus register should be read twice when the same value is read both times the value is correct 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 Rabbit 6000 User s Manual digi com 222 21 3 8 Timing Diagrams The following table explains the parameters used in Figure 21 2
198. N 3 ns 6 ns Data Setup Time 1 ns Data Hold Time Thold ns 37 3 4 External I O Writes Table 37 7 External I O Write Time Delays VDDcore 1 2 V 10 VDDio 3 3 V 10 T4 40 C to 85 C Parameter Symbol Min Typ Max Clock to Address Delay 4 ns 8 ns Clock to Memory Chip Select Delay Tcsx 3ns 6 ns Clock to I O Chip Select Delay Tiocsx 4 ns 10 ns Clock to I O Write Strobe Delay 3 ns 7 ns Clock to I O Buffer Enable Delay TBUFEN 3 ns 6 ns High Z to Data Valid Relative to Clock 3 ns 6 ns Data Valid to High Z Relative to Clock Tpvyz 1 05 2 ns Rabbit 6000 User s Manual digi com 422 External I O Read no extra wait states CLK A 23 0 IC Sx NOCSx NORD normal NORD early BUFEN D 7 0 normal D 7 0 early Figure 37 3 I O Read Cycles No Extra Wait States NOTE IOCSx can be programmed to be active low default or active high Rabbit 6000 User s Manual digi com 423 External I O Write no extra wait states 23 0 CSx 5 IOWR normal IOWR early BUFEN D 7 0 Figure 37 4 I O Write Cycles No Extra Wait States NOTE IOCSx can be programmed to be active low default or active high Rabbit 6000 User s Manual digi com 424 37 4 Clock Speeds 37 4 1 Recommended Clock Memory Configurations Table 37 8 describes some
199. N pin be active low during external I O cycles active low during data memory cycles or driven high or low The values in the battery backed onchip encryption RAM bytes are cleared if the signal on the SMODE pins changes state 4 2 2 Clocks The periodic interrupt real time clock watchdog timer and secondary watchdog timer require the 32 kHz clock 4 2 3 Interrupts The periodic interrupt is enabled in GCSR and will occur every 488 us It is cleared by reading GCSR It can operate at Priority 1 2 or 3 The secondary watchdog interrupt will occur whenever the secondary watchdog is enabled and allowed to count down to zero It is cleared by restarting the secondary watchdog by writing Ox5F to WDTCR or writ ing a new timeout value to SWDTR The secondary watchdog interrupt always occurs at Priority 3 Rabbit 6000 User s Manual digi com 45 4 3 Operation 4 3 1 Periodic Interrupt The following steps explain how a periodic interrupt is used 1 Write the vector to the interrupt service routine to the internal interrupt table 2 Enable the periodic interrupt by writing to GCSR 3 The interrupt request is cleared by reading from GCSR A sample interrupt handler is shown below periodic isr push af ioi ld a GCSR Clear the interrupt request and get status handle any periodic tasks here pop af ipres ret 4 3 2 Real Time Clock The real time clock consists of six 8 bit registers that together comprise a 4
200. Network Port C CFP Max Duration 0 Register NCCFPMDOR 0 0 5 Network Port CFP Max Duration 1 Register NCCFPMDIR Ox0A5F Network Port C MAC Status Register NCMACSR 0x0A6C Network Port C MAC Control Register NCMACCR 0x0A67 Network Port Remaining 0 Register NCRBOOR 0x0A6A Network Port Remaining Backoff 1 Register NCRBOIR 0x0A6B Network Port Beacon Filter Register NCBFR 0x0A6D Network Port Beacon Backoff 0 Register NCBBOOR OxOA6E Network Port Beacon Backoff 1 Register NCBBOIR OxOA6F Rabbit 6000 User s Manual digi com 312 26 2 Dependencies 26 2 1 I O Pins The wireless network port interface has 36 dedicated pins as shown in Table 26 1 Table 26 1 Wireless Port Interface Block Section Signal Direction Function VRXQ Input 0 channel differential VRXQ Input voltage input Input VRXI Input 1 channel differential VRXI Input voltage input ITXQ Output Q channel differential ITXQ Output Current output Output ITXT Output T channel differential ITXI Output current output XTL_20MI Clock 20MHz crystal input Analog XTL_20MO S_VIN Input Monitor ADC input Monitor ADC S_AD_REF Optional A D converter
201. O if internal clock generation is enabled Serial Port F can transmit on parallel port pins PC2 PD2 PE2 or PH2 and can receive on pins PC3 PD3 or PE3 If the HDLC mode is enabled the transmit serial clock is either transmitted or received on PCO PDO or PEO while the receive serial clock is either transmitted or received on PD1 PE1 The transmit and receive clocks can also be transmitted on PH5 or PHI if internal clock generation is enabled Table 20 1 Serial Ports E and F Pin Usage Function Serial Port E Serial Port F Transmit PC6 PD6 PE6 PH6 PC2 PD2 PE2 PH2 Receive PC7 PD7 PE7 PC3 PD3 PE3 Transmit PC4 PD4 PE4 PH4 PCO PDO PEO PHO Clock Receive Clock PC5 PD5 PES PHS PCI PD1 PEI PHI 20 2 2 Clocks The data clocks for Serial Ports E F are based on the peripheral clock and divided by either a Timer A divider or a dedicated 15 bit divider in SxDLR and SxDHR In either case the overall clock divider will be the value in the appropriate register plus one 20 2 3 Other Registers Register Function TAT2R Serial Port E baud rate generation TAT3R Serial Port F baud rate generation PCFR PCAHR PCALR PDFR PDAHR PDALR PEFR PEAHR PEALR PHFR PHAHR PHALR Alternate port output selection TATIR Prescaler for TAT2R TAT3R TAPR Prescaler for TAT1R TACR Input selection for TAT2R TAT3R Rabbit 6000 User s Manua
202. PDBxR Serial Ports 7 0 Tx Rx Clocks lt gt External 1 0 7 0 Strobes External I O Address 3 0 76 7 4 PWM Output Timer C Output 5 4 1 0 External Interrupts 7 Slave Port CS DMA Request 1 6 3 2 Quadrature Decoder 5 0 Input Capture 50 31 gt perclk Timer 1 Timer B1 Timer B2 Rabbit 6000 User s Manual digi com 115 11 1 2 Registers Register Name Mnemonic I O Address R W Reset Port D Data Register PDDR 0x0060 Port D Alternate Low Register PDALR 0 0062 00000000 Port D Alternate High Register PDAHR 0x0063 00000000 Port D Control Register PDCR 0x0064 R W xx00xx00 Port D Function Register PDFR 0x0065 Port D Drive Control Register PDDCR 0x0066 Port D Data Direction Register PDDDR 0x0067 00000000 Port D Bit x Register PDBxR 0x0068 x w XXXXXXXX Port Dx Control Register PDxCR Ox04E0 x W 00000 Rabbit 6000 User s Manual digi com 116 11 2 Dependencies 11 2 1 I O Pins Parallel Port D uses pins PDO through PD7 These pins can be used individually as data inputs or outputs as serial port transmit and receive for Serial Ports A E and F as clocks for Serial Ports as external strobes or as outputs for the PWM and Timer C peripherals The input capture peripheral can also watch pins PD7 PD5
203. Parallel Port B 7 2 is used for the address bus 100 This bit combination is reserved and should not be used 101 This bit combination is reserved and should not be used 110 Enable the slave port with SCS from Parallel Port B bit 6 111 Enable the external vO bus Parallel Port A is used for the data bus and Parallel Port B 7 0 is used for the address bus 1 0 00 Slave port interrupts are disabled 01 Slave port interrupts use Interrupt Priority 1 10 Slave port interrupts use Interrupt Priority 2 11 Slave port interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 226 22 1 Overview The Rabbit 6000 has a 11 bit single channel A D converter a 10 bit two channel differential input A D converter and a 10 bit two channel differential current output D A converter for 802 11 Wi Fi operation The Wi Fi analog features are available for customer use when Wi Fi is not being used Table 22 1 sum marizes the analog features Table 22 1 Analog Components 22 WI FI ANALOG COMPONENTS Component A 1 Number Function Sampling Rate Description Operation Pin s Voltage sensing oe j VRXI 0 AD Upto 20 2 channels 10 bit Continuous Converter megasamples s 1 differential VRXQ i ITXI ITXI D A Up to 80 Current sourcing 1 Converter 2 channels 10 bit Continuous ITXQ differential ITXQ Voltage sensing 2 A D Up to 1 1 channel 11 bi
204. Parallel Port C D E F G and H Pin Outputs Alternate Output Option Pin 0 2 7 17 PWM3 SCLKC PC6 TXA 16 PWM2 TXE PC5 TXB I5 PWMI RCLKE PC4 TXB I4 PWMO TCLKE PC3 TXC I3 TIMER C3 SCLKD PC2 TXC 12 2 TXF TXD TIMER RCLKF TXD 10 TIMER CO TCLKF PD7 7 PWM3 SCLKC PD6 TXA I6 PWM2 TXE PD5 IA6 I5 PWMI RCLKE PD4 TXB I4 PWMO TCLKE PD3 IA7 I3 TIMER C3 SCLKD PD2 SCLKC 12 2 TXF IA6 II TIMER Cl RCLKF 0 SCLKD 10 TIMER CO TCLKF 7 PWM3 SCLKC 6 16 PWM2 TXE PES 15 SCLKG PWMI RCLKE PE4 I4 SDATG PWMO TCLKE PE3 I3 TIMER C3 SCLKD 2 12 USB_PWR TIMER C2 TXF PEI SCLKG TIMER Cl RCLKF 0 10 SDATG TIMER CO TCLKF PF7 FIMA7 17 PWM3 SCLKC PF6 FIMA6 16 PWM2 TXE Rabbit 6000 User s Manual rabbit com 442 Table A 2 Alternate Parallel Port D E F G and H Pin Outputs Alternate Output Option Pin 0 2 5 FIMAS I5 PWMI RCLKE PF4 FIMA4 I4 PWMO TCLKE PF3 FIMA3 I3 TIMER C3 SCLKD PF2 FIMA2 12 2 TXF 1 FIMAI TIMER Cl RCLKF PFO FIMAO 10 TIMER CO TCLKF PG7 FIMB7 17 PWM3 SCLKC PG6 FIMB6 16 PWM2 TXE
205. Port E Bit 4 Register 134 Parallel Port E Bit 5 Register 134 Parallel Port E Bit 6 Register 135 Parallel Port E Bit 7 Register 135 Parallel Port E Control Register 132 Parallel Port E Data Direction Register 133 Parallel Port E Data Register 131 Parallel Port E Drive Control Register 133 Parallel Port E Function Register 133 Parallel Port Ex Control Register 135 Parallel Port tente 139 Parallel Port F Alternate High Register 142 Parallel Port F Alternate Low Register 141 Parallel Port F Control Register 142 Parallel Port F Data Direction Register 143 Parallel Port F Data Register 141 Parallel Port F Drive Control Register 143 Parallel Port F Function Register 143 Parallel Port Fx Control Register 144 Parallel Port G eerte ee 147 Parallel Port G Alternate High Register 150 Parallel Port G Alternate Low Register 149 Quad Decode Count High Register 339 Quad Decode Count Register 339 HOSEL e TNE SRE EE E SSE 36 reset bootstrap Slave Port Control Register 41 Serial 10 187 Serial Port x Address Register
206. R Address 0x020A Bit s Value Description 7 6 00 Disable transmit FIFO 01 request when frame transmission is complete 10 Reserved 11 Reserved 5 4 00 Start transmit on command only 01 Start transmit on command or Last Byte written 10 Start transmit on command when FIFO is half full or Last Byte written Start transmit on command when FIFO is one fourth full or Last Byte written 3 0 These bits are reserved and should be written with zeros Network Port B Receive Control Register NBRCR Address 0x020B Bit s Value Description 7 6 00 Disable receive FIFO 01 DMA request when frame reception is complete 10 DMA request when FIFO is half full or frame reception is complete 11 DMA request when FIFO is one fourth full or frame reception is complete 5 0 Normal receiver operation 1 Place receiver in Monitor Mode Receiver operates normally but does not buffer frames to memory 4 0 Receive frames less than 64 bytes in length discarded 1 Receive frames as short as 8 bytes accepted 3 0 Receive frames with errors discarded Reclaim buffer space 1 Receive frames with errors accepted Do not reclaim buffer space 2 0 Receive frames with broadcast address ignored 1 Receive frames with broadcast address accepted 1 0 Receive frames with multicast addresses ignored 1 Receive frames with multicast addresses accepted if passing hashing fi
207. R Address 0x055D ADC7MR Address 0x055F Bit s Value Description The current values of the 8 most significant bits of the multiplexed A D 7 0 Read converter channel are returned Write Writes to this register are ignored Rabbit 6000 User s Manual digi com 248 24 DMA CHANNELS 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 The DMA channels are capable of special handling for the last byte of data when sending data to selected internal I O addresses such as the HDLC serial ports or to the Ethernet peripheral and can also transfer end of frame status after transferring data from selected internal I O addresses The DMA channels can watch the data being transferred and can terminate a transfer when a particular byte is matched A mask is available for the byte match to allow termination only on particular bit settings in the data instead of an exact byte match There are two DMA transfer methods available in the Rabbit 6000 the bus interleaving mode and the bus sharing mode If all sources and destinations are internal to the device the bus interleaving mode should be used In this mode the pipelined funct
208. R to select the interrupt priority note that interrupts will be enabled once this value is set The following actions occur within the interrupt service routine Determine exactly why the interrupt occurred by reading the status bits if the interrupt occurred due to a counter rollover adjust any software counters accordingly Reading QDCSR will also clear the interrupt request The current counter value can be read from QDCxR and QDCxHR if the 10 bit counter is enabled 29 3 2 Example ISR A sample interrupt handler is shown below qd_isr push af save used registers 1 QDCSR clear the interrupt request get status perform any necessary software counter adjustments here read current counter value s pop af restore used registers ipres ret Rabbit 6000 User s Manual digi com 337 29 4 Register Descriptions Quad Decode Conirol Status Register QDCSR Address 0x0090 Bit s Value Description 7 0 Quadrature Decoder 2 did not increment from the maximum count Read l Quadrature Decoder 2 incremented from the maximum count to 0x000 only This bit is cleared by a read of his register 6 0 Quadrature Decoder 2 did not decrement from zero Read l Quadrature Decoder 2 decremented from zero to the maximum count only This bit is cleared by a read of this register 5 This bit always reads as zero 4 0 No effect on the Qua
209. RAMSR Address 0x0448 Bit s Value Description 7 2 Compare value for RAM segment limit checking 1 0 00 Disable RAM segment limit checking 01 Select data type MMU translation if PC 15 10 is equal to RAMSR 7 2 10 Select data type MMU translation if PC 15 11 is equal to RAMSR 7 3 11 Select data type MMU translation if PC 15 12 is equal to RAMSR 7 4 Rabbit 6000 User s Manual digi com 76 Write Protect Segment x Register WPSAR Address 0x0480 WPSBR Address 0x0484 Bit s Value Description When these eight bits 23 16 match bits of the physical address write 7 0 protect that 64 KB range in 4 KB increments using WPSxLR and WPSxHR Rabbit 6000 User s Manual digi com 77 Write Protect Segment x Low Register WPSALR Address 0x0481 WPSBLR Address 0x0485 Bit s Value Description 7 0 Disable 4 KB write protect for relative address 0x7000 0x 7FFF in WP Segment x 1 Enable 4 KB write protect for relative address 0x7000 0x 7FFF in WP Segment x 6 0 Disable 4 KB write protect for relative address 0x6000 0x6FFF in WP Segment x 1 Enable 4 KB write protect for relative address 0x6000 0x6FFF in WP Segment x 5 0 Disable 4 KB write protect for relative address 0x5000 0x5FFF in WP Segment x 1 Enable 4 KB write protect for relative address 5000 0 5 in WP Segment x 4 0 Disable 4 KB write protect for re
210. Rabbit devices The Rabbit 6000 has several powerful design features that practically eliminate EMI problems which is essential for OEMs who need to pass CE and regulatory radio frequency emissions tests The amplitude of any electromagnetic radiation is reduced by the internal spectrum spreader by gated clocks which prevent unnecessary clocking of unused registers and by separate power planes for the processor core and I O pins which reduce noise crosstalk An external I O bus can be used by designers to enable separate buses for I O and memory or to limit loading the memory bus to reduce EMI and ground bounce problems when interfacing external peripherals to the processor The external I O bus accomplishes this by duplicating the Rabbit s data bus on Parallel Port A and uses Parallel Port B to provide the processor s six or eight least significant address lines for interfacing with external peripherals The high performance instruction set offers both greater efficiency and execution speed of compiler gener ated C code Instructions include numerous single byte opcodes that execute in two clock cycles 16 bit and 32 bit loads and stores 16 bit and 32 bit logical and arithmetic operations 16 x 16 multiply executes in 12 clocks long jumps and returns for accessing a full 16 MB of memory and one byte prefixes to turn memory access instructions into internal and external I O instructions Hardware supported breakpoints ease debugging by trappi
211. Register I7CR 0x009F R W xx000000 Rabbit 6000 User s Manual digi com 89 7 3 Dependencies 7 3 1 Pins External interrupts 0 and 1 can be enabled on pins PDO PD1 PEO 1 PE4 and PES 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 Pins Interrupt 0 IOCR PDO PEO PE4 Interrupt 1 PD1 PE1 PES Interrupt 2 12 PFO PF7 PGO PG7 Interrupt 3 I3CR PFO PF7 PGO PG7 Interrupt 4 PGO PG7 Interrupt 5 15 7 PGO PG7 Interrupt 6 16 7 PGO PG7 Interrupt 6 I7CR PGO PG7 7 3 2 Clocks The external interrupts are controlled by the peripheral clock A pulse must be present for at least three peripheral clock cycles to trigger an interrupt 7 3 3 Interrupts An external interrupt is generated whenever the selected edge occurs on an enabled pin The interrupt request is automatically cleared when the interrupt is handled The external interrupt vectors in the EIR at offsets 0 000 0 070 They can be set as Priority 1 2 or 3 in the appropriate IxCR Rabbit 6000 User s Manual digi com 90 7 4 Operation The following steps must be taken to enable the external interrupts 1 Write the vector s to the inte
212. SB PWR TIMER C2 TXF 1 SCLKG TIMER RCLKF PEO 10 SDATG TIMER CO TCLKF Rabbit 6000 User s Manual digi com 125 Table 12 2 Parallel Port E Pin Alternate Input Functions ae DMA PE7 yes yes RXA RXE DREQI QD2A PE6 yes DREQO QD2B PES yes yes RXB RCLKE INTI QDIA PE4 yes TCLKE INTO QDIB PE3 yes yes RXC RXF DREQI QD2A OVCR PE2 SCLKC DREQO QD2B PE1 yes yes RXD RCLKF INT1 QDIA PEO SCLKD TCLKF INTO QDIB Rabbit 6000 User s Manual digi com 126 12 1 1 Block Diagram Parallel Port E PEDR PEBxR Serial Ports C F 7 0 Tx Rx Clocks External 10 Strobes 7 0 and Handshake 5 4 1 Serial Poirt G gt PWM Output USB Power 6 Timer Output External Interrupts 5 4 1 0 DMA Request 7 6 3 2 Quadrature Decoder Input Capture L531 o N percik men 01222 TmerB2 Rabbit 6000 User s Manual digi com 127 12 1 2 Registers Register Name Mnemonic I O Address R W Reset Port E Data Register PEDR 0x0070 Port E Alternate Low Register PEALR 0x0072 00000000 Port E Alternate High Register PEAHR 0x0073 00000000 Port E Contro
213. SGTCOR 0x0594 00000001 SGTCIR 0 0595 00000100 Serial Port Timing Control Registers SGTCOR 0x0596 R W 00000000 SGTC3R 0 0597 00000000 SGSBMOR 0x0598 00000011 SGSBMIR 0x0599 00000000 Serial Port G Bus Monitor Registers SGSBM2R 0x059A R 00000000 SGSBMGR 0 059 00000000 Serial Port G Main Control Register SGMCR 0 059 00000000 Rabbit 6000 User s Manual digi com 391 35 2 Dependencies 35 2 1 I O Pins The peripheral can transmit and receive data on parallel port pins EO or E4 and can transmit a clock on E1 or 5 These options are selected in SGMCR Table 35 1 Pin Usage 2 Parallel Port Function i Pin Options Data SDA PEO PE4 Clock SCL PE1 PES The glitch filtering built in to the re peripheral does not meet the 50 ns requirement at system clocks over 140 MHz When using clock speeds above 140 MHz it is recommended to add a ferrite bead rated at 1000 at 100 MHz to both the SCL and SDA lines to provide additional glitch filtering See Texas Instru ments Application Report 5 053 for more information 35 2 2 Clocks In the master mode the data clock for the 1 C peripheral is based on the peripheral clock and is divided by the 16 bit divider in SGCDxR In the slave mode the external master provides the clock 35 2 3 Other Registers Register Function PEFR PEAHR PEALR Alternate port output selection 35 2 4 Interrup
214. TAPR The output of TAPR drives Timers Al 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 Rabbit 6000 User s Manual digi com 179 18 3 Operation The following steps explain how to set up a Timer C timer N Select perclk 2 perclk 16 Timer A1 or Timer A11 in TCCR Load the desired upper limit for the counter into TCDLR and TCDHR The overall clock count per Timer C cycle will be the value loaded into the divider registers plus one Load the desired set and reset values for the Timer C outputs into the set and reset registers TCSxLR TCSxHR TCRxLR and TCRxHR If you intend to use DMA control of Timer C use TCBAR to access the Timer C register pointed to by TCBPR Enable the desired output pins for Timer C by writing to the appropriate parallel port function and alternate output registers Enable Timer C by writing a 1 to bit 0 of TCCSR 18 3 1 Handling Interrupts The following steps explain how an interrupt is used 1 Write the vector to the interrupt service routine to the internal interrupt table 2 Configure TCCR to select the interrupt priority note that interrupts will be enabled once this value is set The interrupt request is cleared by reading from TCCSR 18 3 2 Example ISR A sample interrupt handler is shown below timerC isr
215. The start and stop condition can also be the input from separate pins The input capture channels can be used to measure the width of fast pulses This is done by starting the counter on the first edge of the pulse and capturing the counter value on the second edge of the pulse In this case the maximum error in the measurement is approximately 2 periods of the clock used to increment the counter If there is sufficient time between events for an interrupt to take place the unit can be set up to capture the counter value on either start or stop conditions or both and cause an interrupt each time the count is captured The counter can also be cleared and started under software control and then have its value captured in response to an input 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 Rabbit 6000 User s Manual digi com 322 28 1 1 Block Diagram Input Capture Channel x Parallel Interrupt Interrupt 189 Request Rabbit 6000 User s Manual digi com 323 28 1 2 Registers Register Name Mnemonic I O Address R W Reset Input Capture Ctrl Status Register ICCSR 0 0056 00000000 Input Capture Control Register ICCR 0 0057 W 00000000 Input Capture Trigger 1 Register ICTIR 0 0058 00000000 Input Capture Source 1 Register 51
216. Z Clock eee es 26 2 4 Register Descriptions 28 Reset and Bootstrap OVetVIEW aieo an 35 3 1 1 Block Diagram 36 2 1 2 Registers ecce eere eerte rts 36 3 2 Dependencies sedere retro ere 37 3 2 u usa sn unun 37 2 2 4 06 8 5 5555 te e tertie 37 3 2 3 Other Registers 2 2 37 3 24 Interrupts nece 37 3 3 Operation 38 3 3 1 Asynchronous Serial Bootstrap 40 3 3 2 Serial Flash Bootstrap 40 3 3 3 Parallel Bootstrap 41 3 4 Register Descriptions 2 22 2 2 2 41 System Management 4 1 OVervIew sik ais a eee Ue D RR 42 4 1 1 Block Diagram 43 4 1 2 Registers hs 44 4 2 Dependencies 45 42 1 eee 45 422 CIOCKS 45 4 2 3 Interr upts eese 45 4 3 Operation oen etri 46 4 3 1 Periodic Interrupt 46 TABLE OF CONTENTS 4 3 2 Real Time Clock 46 4 3 3 Watchdog Timer 47 4 3 4 Secondary Watchdog Timer 47 4 3 5 CPU Clock Cycle Counter 47 4 4 Register Descriptions 2 2 1 48 Memory Management 5 1 OVerVIeW isis re e r a 54
217. abbit 6000 supports up to five separate clocks at once the main clock the 32 kHz clock the 20 MHz Wi Fi clock the 25 MHz Ethernet clock and the 48 MHz USB clock The main clock is used to drive the processor clock and the peripheral clock inside the processor The 32 kHz clock is used to drive the asynchronous serial bootstrap the real time clock the periodic interrupt and the watchdog timers The 32 kHz clock input requires an external clock signal the remaining clock inputs have internal oscilla tors that can be driven with just an external crystal If desired each of the remaining clock inputs can also be used with an external clock as well bypassing the internal oscillator The Ethernet peripheral can be driven from the main clock instead of the PHY clock input removing the need for separate main and Ethernet clocks When this feature is enabled the main clock must be 25 MHz for proper Ethernet operation The main clock can be fed into a phase locked loop PLL generating CPU and peripheral clocks in the range of 150 200 MHz depending on the input clock and PLL settings This clock can be further adjusted by the clock divider if desired Dividers exist for most peripherals to scale their clocks over a wide range of frequencies The Rabbit 6000 has a spectrum spreader on the main clock that shortens and lengthens clock cycles This has the net effect of reducing the peak energy of clock harmonics by spreading the spectral energy into
218. ack limit violation interrupt vec tor is in the IIR at offset Ox 1BO It is always set to Priority 3 Rabbit 6000 User s Manual digi com 60 5 3 Operation 5 3 1 Internal RAM There are two internal RAM devices the Rabbit 6000 A 1 MB RAM is located on CS3 WEO 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 The 1 MB RAM is a pipelined device meaning that the DMA peripheral can access it between code fetches and data read writes providing a significant performance improvement for applications that use DMA such as networking However there are some restrictions in the use of the 1 MB RAM 1 If the 32 kHz clock is not present its performance will be halved This will not be noticeable unless DMA is also operational 2 The data contents will only be preserved if the main clock is greater than 12 MHz The internal 32 KB SRAM is powered by the VBAT pin Its contents will be preserved as long as 1 2 V is kept on VBAT 5 3 2 Memory Management Unit MMU Code execution takes place in the 64 KB logical memory space which is divided into four segments root data stack and extended XMEM The root segment is always mapped starting at physical address 0x000000 but the other segments can be remapped to start at any physical 4 KB block boundary The data and stack segment mappings are set by writing to the appropriate register
219. after transferring the next data byte on the PC bus master mode only 4 0 No effect Initiate a start condition when the IC bus is idle or a repeated start 1 condition after transferring the next data byte on the PC bus master mode only 3 0 No response to a general call 1 Enable response to a general call slave more only 2 0 Slave mode operation PC controller clock is an input 1 Master mode operation PC controller clock is an output 0 Disable the I C controller Enable the C controller 0 0 No effect 1 Reset the controller This bit is automatically cleared after two clock cycles Rabbit 6000 User s Manual digi com 395 Serial Port G Control 1 Register SGC1R Address 0x0581 Bit s Value Description 7 0 No effect 1 Force SCL low This is not used normal operation 6 0 No interrupt when a start condition is detected 1 Enable interrupt when a start condition is detected 5 0 No interrupt when arbitration is lost 1 Enable interrupt when arbitration is lost master mode 4 0 No interrupt on slave address match or general call if enabled 1 Enable interrupt on slave address match or general call if enabled 3 0 No interrupt when a stop condition is detected 1 Enable interrupt when a stop condition is detected 2 0 No interrupt on non ACK response l Enable interrupt on non ACK respo
220. al digi com 354 31 4 Register Descriptions Handshake Control Register IHCR Address 0x0028 Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 handshake is active low I O transaction held until signal goes high 1 handshake is active high I O transaction held until signal goes low 3 This bit is reserved and should be written with zero 2 0 000 Use Parallel Port E bit 0 for I O handshake 001 Use Parallel Port E bit 1 for I O handshake 010 Use Parallel Port E bit 2 for I O handshake 011 Use Parallel Port E bit 3 for I O handshake 100 Use Parallel Port E bit 4 for I O handshake 101 Use Parallel Port E bit 5 for I O handshake 110 Use Parallel Port E bit 6 for I O handshake 111 Use Parallel Port E bit 7 for I O handshake Handshake Select Register IHSR Address 0x0029 Bit s Value Description 7 0 Disable I O handshake for I O Bank 7 1 Enable I O handshake for I O Bank 7 6 0 Disable I O handshake for I O Bank 6 1 Enable I O handshake for I O Bank 6 5 0 Disable I O handshake for I O Bank 5 1 Enable I O handshake for I O Bank 5 4 0 Disable I O handshake for I O Bank 4 1 Enable I O handshake for I O Bank 4 3 0 Disable I O handshake for I O Bank 3 1 Enable I O handshake for I O Bank 3 2 0 Disable I O handshake for I O Bank 2 1 Enable I O handshake for I O Ba
221. allel Port G bit 6 alternate output 1 I6 10 Parallel Port G bit 6 alternate output 2 PWM2 11 Parallel Port G bit 6 alternate output 3 TXE 3 2 00 Parallel Port bit 5 alternate output 0 FIMB5 01 Parallel Port G bit 5 alternate output 1 I5 10 Parallel Port G bit 5 alternate output 2 PWM1 11 Parallel Port bit 5 alternate output 3 RCLKE 1 0 00 Parallel Port G bit 4 alternate output 0 FIMB4 01 Parallel Port G bit 4 alternate output 1 I4 10 Parallel Port G bit 4 alternate output 2 PWMO 11 Parallel Port G bit 4 alternate output 3 TCLKE Rabbit 6000 User s Manual digi com 150 Parallel Port G Control Register PGCR Address 0x004C Bit s Value Description 7 6 These bits are ignored and should be written with zero 5 4 00 The upper nibble peripheral clock is perclk 2 01 The upper nibble peripheral clock is the output of Timer 1 10 The upper nibble peripheral clock is the output of Timer B1 11 The upper nibble peripheral clock is the output of Timer B2 3 2 These bits are ignored and should be written with zero 1 0 00 The lower nibble peripheral clock is perclk 2 01 The lower nibble peripheral clock is the output of Timer 1 10 The lower nibble peripheral clock is the output of Timer B1 11 The lower nibble peripheral clock is the output of Timer B2 Parallel Port G Function Regist
222. alog compo nent 0 1 or 2 respectively 22 3 2 Clocks Each of the analog components 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 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 Rabbit 6000 User s Manual digi com 231 22 4 Operation 22 4 1 Fast A D Converter The following steps must be taken to operate the fast A D converter 1 Select the clock source and enable the fast A D converter by writing to AOCR 2 Read the channel data the AOIxR and registers Reading the least significant bit registers first will lock the value in the most significant bit register until it is read 3 For faster update an 8 bit value can be obtained by only reading the most significant bit registers AOIMR or 4 To reduce power consumption the fast A D converter can be put into sleep mode by writing to AOCR 22 4 2 Fast D A Converter The following steps must be taken to operate the fast D A converter 1 Select the clock source and enable the fast D A converter by writing to AICR 2 Write the channel data to the A1IxR and A1QxR registers Writing the least significant bit registers first will hold the conversion output until the most significant bit register is written 3 For faster update an 8 bit value can be output by only
223. alue Description 7 5 000 Disable parity generation and checking 001 This bit combination is reserved and should not be used 010 This bit combination is reserved and should not be used 011 This bit combination is reserved and should not be used 100 Enable parity generation and checking with even parity 101 Enable parity generation and checking with odd parity 110 Enable parity generation and checking with space always zero parity 111 Enable parity generation and checking with mark always one parity 4 0 Normal asynchronous data encoding 1 Enable RZI coding 3 16 bit cell IIDA compliant 3 0 Normal break operation This option should be selected when address bits are expected Fast break termination At the end of break a dummy character is written 1 to the buffer and the receiver can start character assembly after one bit time 2 0 Asynchronous clock is 16x data rate 1 Asynchronous clock is 8x data rate 1 0 Continue character assembly during break to allow timing the break condition 1 Inhibit character assembly during break One character all zeros with framing error at start and one character garbage at completion 0 This bit is ignored in the asynchronous mode Rabbit 6000 User s Manual digi com 197 Serial Port x Extended Register SAER Address 0x00C5 SBER Address 0x00D5 Clocked Serial Mode Only SCER Address 0x00E5 SDER Addres
224. and can receive on pins PC3 PD3 or PE3 If the clocked serial mode is enabled the serial clock can be transmitted on PC7 PD7 PD2 or PE7 and can be received on PD2 or PE2 Serial Port D can transmit on parallel port pins or PCO can receive on pins PC1 PD1 or PEI If the clocked serial mode is enabled the serial clock can be transmitted on PC3 PD3 PDO or PE3 and can be received on PDO or PEO Table 19 2 Pin Usage Serial Ports D Function Serial Port A Serial Port B Serial Port C Serial Port D Transmit PC7 PC6 PD6 PC5 PC4 PD4 PC3 PC2 PC1 PCO Receive PC7 PD7 PE7 PC5 PD5 PES PC3 PD3 PE3 PD1 T it PC7 PD7 PD2 PC3 PD3 PDO 2 PBI PBO 7 PF7 PG7 7 PH3 Receive Clock PB1 PBO PD2 PE2 PDO PEO 19 2 2 Clocks 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 Rabbit 6000 User s Manual digi com 188 19 2 3 Other Registers Register Function TAT4R Serial Port A baud rate generation TATSR Serial Port B baud rate generation 6 Serial Port C baud rate generation TAT7R Serial Port D baud rate generation PCFR PCAHR PCALR FDER CODES Alternate port output selection PDALR ROTE
225. ansmitter 2 oeste reete ets 285 118 Network Port C OVerVISW ecc 113 block 310 PDDR setup nana 113 dicc 314 register descriptions sss 119 dependencies 313 labio M 116 316 Parallel Port E eee eS 125 Operati B 316 alternate input functions 126 309 alternate output functions 125 1581618 aes 311 block diagram 127 lu x ine 129 P dependencies tete dete teens 129 IDterrupts a eee eee restes es ep cosi Pep dote tede 129 Parallel eun 94 operation 130 alternate output functions 11 1 94 OVEIVIEW unn a ob RU UI 125 block diagram 95 PEDR ere reer eee eee 125 CIOCKS 96 gister descriptions PUR RTT RAE 131 external I O data DUS 4440 4 0 4 94 TegisteTs n sns 128 97 Parallel Port 136 Neidio Ee e 94 alternate input functions 222222 1 4 0 02 137 register description 2 2210221 104 alternate output f
226. arallel Port E bit 2 alternate output 3 TXF 3 2 00 Parallel Port E bit 1 alternate output O I1 01 Parallel Port E bit 1 alternate output 1 SCLKG 10 Parallel Port E bit 1 alternate output 2 TIMER C1 11 Parallel Port E bit 1 alternate output 3 RCLKF 1 0 00 Parallel Port E bit 0 alternate output 0 10 01 Parallel Port E bit 0 alternate output 1 SDATG 10 Parallel Port E bit 0 alternate output 2 TIMER CO 11 Parallel Port E bit 0 alternate output 3 TCLKF Rabbit 6000 User s Manual digi com 131 Parallel Port E Alternate High Register PEAHR Address 0x0073 Bit s Value Description 7 6 00 Parallel Port E bit 7 alternate output 0 17 01 Parallel Port E bit 7 alternate output 1 no functionality 10 Parallel Port E bit 7 alternate output 2 PWM3 11 Parallel Port E bit 7 alternate output 3 SCLKC 5 4 00 Parallel Port E bit 6 alternate output 0 I6 01 Parallel Port E bit 6 alternate output 1 no functionality 10 Parallel Port E bit 6 alternate output 2 PWM2 11 Parallel Port E bit 6 alternate output 3 TXE 3 2 00 Parallel Port E bit 5 alternate output 0 I5 01 Parallel Port E bit 5 alternate output 1 SCLKG 10 Parallel Port E bit 5 alternate output 2 PWM1 11 Parallel Port E bit 5 alternate output 3 RCLKE 1 0 00 Parallel Port E bit 4 alternate output 0 14 01 Parallel Port E bit 4 alterna
227. ari ous on chip peripherals When used as simple digital outputs the Parallel Port E bits are buffered with the data written to PEDR transferred to the output pins on a selected timing edge Either the peripheral clock or the outputs of Timer 1 Timer or Timer B2 can be used for this function with each nibble of the port having a separate select field to control this timing Each bit can either be programmed as open drain or driven high and low Because of the buffered nature of Parallel Port E using a read modify write type of operation can lead to old data being written to PEDR To alleviate this potential problem each bit of the port can be written individ ually using a separate address for each bit Bit 7 of Parallel Port E is used as the default chip select input for the slave port when the slave port is enabled either for parallel bootstrap or under program control The drive strength and slew rate can be individually controlled for each Parallel Port E pin In addition a 75 kQ pullup or pulldown resistor can be enabled on each pin Note that it is possible for either Flexible Interface Module to use any of the parallel ports See Chapter 33 for more information Table 12 1 Parallel Port E Pin Alternate Output Functions Pin Name Alt Out 0 Alt Out 1 Alt Out 2 Alt Out 3 PE7 17 PWM3 SCLKC PE6 16 PWM2 TXE PES I5 SCLKG PWMI RCLKE PE4 14 SDATG PWMO TCLKE PE3 13 TIMER C3 SCLKD PE2 I2 U
228. ates for accesses in this bank 11 One wait state for accesses in this bank 5 4 00 The I signal is an I O chip select 01 The I signal is I O read strobe 10 The I signal is an I O write strobe 11 The I signal is an I O data read or write strobe 3 0 Writes are not allowed to this bank Transactions are normal in every other way only the write strobe is inhibited 1 Writes are allowed to this bank 2 0 Active low I signal 1 Inverted active high I signal 1 0 Normal I O transaction timing Shorten read strobe by one clock cycle and write strobe by one half clock 1 cycle Transaction length remains the same This guarantees one clock cycle hold time for both address and data for I O transactions 0 0 Use I O bus if enabled in SPCR 1 Always use memory data bus Rabbit 6000 User s Manual digi com 357 10 Bank x Extended Register IBOER Address 0x0451 IB1ER Address 0x0453 IB2ER Address 0x0455 Address 0 0457 IB4ER Address 0x0459 IB5ER Address 0x045B IBGER Address z 0x045D IB7ER Address 0x045F Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 I O bank uses 8 bit data bus 1 bank uses 16 bit data bus using parallel port H as the upper byte 3 This bit is reserved and should be written with zero transactions run at CPU clock speed Note that I O transactions
229. ation byte A one in a bit position enables the corresponding bit of the termination byte to be used in the compare to generate the termination condition 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 Description Rabbit 6000 User s Manual digi com 273 DOBUOR D1BUOR D2BUOR D3BUOR DABUOR D5BUOR D6BUOR D7BUOR D8BUOR D9BUOR D10BUOR D11BUOR D12BUOR D13BUOR D14BUOR D15BUOR DMA y Buffer Unused 7 0 Register Address 0x010A Address 0x011A Address 0x012A Address 0x013A Address 0x014A Address 0x015A Address 0x016A Address 0x017A Address 0x090A Address 0 091 Address 0x092A Address 0 093 Address 0x094A Address 0x095A Address 0x096A Address 0 097 7 0 Bit s Value Bits 7 0 of the buffer unused length value are stored in this register The DMA copies the buffer remaining length to this register at the completion of the transfer Normally the buffer remaining length is zero but if the transfer terminates early under source control or because of a termination byte match the number of unused bytes in the buffer is written Description DOBU1R D1BU1R D2BU1R D3BU1R D4BU1R D5BU1R D6BU1R D7BU1R D8BU1R D9BU1R D10BU1R D
230. attery backed SRAM also high speed that reside on their own chip select signal They can both be enabled in either the 8 bit or the 16 bit mode The Rabbit 6000 s physical memory space contains four consecutive banks each of which can be set for equal sizes ranging from 128 KB up to 4 MB providing a total physical memory range from 512 KB up to 16 MB Each bank can be mapped to an individual chip select enable strobe pair for a memory device In addition each bank can be divided into two equal sized low and high sub banks with separate chip select enable strobe mapping Figure 5 1 shows a sample configuration Rabbit 6000 User s Manual digi com 54 1 MECR 0x00 OxFFFFF MB3HCR 0x86 Memory Bank 3 MB3CR 0x86 MB3LCR 0x86 MB2HCR 0xC5 Memory Bank 2 MB2CR 0xC5 MB2LCR 0xC5 0x80000 Ox7FFFF MB1HCR 0 0 Memory Bank 1 MB1CR 0xC0 MB1LCR 0xC0 0x40000 Ox3FFFF MBOHCR 0 0 Memory Bank 0 MBOCR 0 0 MBOLCR 0xC0 1 wait state ICS2 IOE1 IWE1 a 0 wait states ICS1 1 IWE1 0 wait states 50 0 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 Code is executed in the 64 KB logical mem
231. bbit 6000 Pin Descriptions Pin Group Pin Name Direction Function BGA 292 Ball BGA 233 Ball A23 N19 A22 P19 21 D18 A20 C15 19 B16 18 15 17 9 16 D4 15 14 J3 A13 El jen Output Address Bus A10 K3 A9 DI A8 E4 7 18 6 19 5 F17 A4 D20 A3 E18 CPU Buses A2 E19 Al G17 AO 13 A0 Output Address Bus 0 Bar D15 D3 D14 G4 D13 C3 D12 G3 D11 D2 D10 E2 D9 C1 Bidirectional Data Bus 7 D6 B20 D5 C18 D4 D16 D3 D15 D2 B19 D1 A20 DO Real Time Input 12 P4 Clock VBATIO Input 2 0V 3 3V R4 T4 12 Rabbit 6000 User s Manual digi com 435 Table 38 3 Rabbit 6000 Pin Descriptions Pin Group Pin Name Direction Function BGA 292 Ball BGA 233 Ball WDT Output WDT Time Out B12 Cll STATUS Output IFetch First Byte E20 E14 Status amp SYSCFG Input System Config 12 Control SMODEI InDuts Bootstrap Mode amp D11 B12 SMODEO P Tamper Detect 2 TSENSE Input Die Temp Monitor V10 P8 CSO Output Memory Chip Select F20 N A Chip Selects 51 Output Memory Chip Select T3 K3 CS2 Output Memory Chip Select Gl N A Output 0 Output Memory Output Enable C16 N A Enables OE1 Output Memory Output Enable F3 N A WEO Output Memory Write Enable B17 N A Write Enables WEI Output Memory Write Enable F4 N A IOBEN Output I O Buffer Enabl
232. bbit 6000 User s Manual digi com 20 2 3 2 Main PLL The main PLL is optimally tuned for a 25 MHz clock input and to produce a 400 MHz output which can be fed directly to the Flexible Interface Modules FIMs and is divided by two to 200 MHz for processor and peripheral operation Note that the main PLL can be bypassed if lower frequencies are desired The main PLL is enabled in GCDR but is not selected as the main clock until enabled in MSCR If the 32 kHz clock is present then the switchover to the PLL output for the main clock will not occur until 200 ps after the bit is enabled in MSCR to allow the PLL output to stabilize The status of the main PLL stable output or not can be read in bit 0 of MSSR The main PLL input clock is restricted to 20 200 MHz and the output frequency range is limited to 300 400 MHz There are further restrictions on the internal frequency main PLL divider values are located in GCMOR and GCMIR These should be set to a nonzero value before enabling the PLL Some suggested PLL settings are described in Table 2 3 chosen to match other clock requirements in the design to allow clock sharing If other PLL settings are desired please contact your sales representative at Digi International Table 2 3 Suggested PLL Modes Input Clock Main Clock FIM Clock GCMOR GCM1R max max Setting Setting 20 MHz 150 MHz 300 MHz xxx10000 xxxx0001 20 MHz 200 MHz 400 MHz 10100 0001
233. bbit 6000 User s Manual digi com 428 38 PACKAGE SPECIFICATIONS AND PINOUT 38 1 Ball Grid Array Packages 38 1 1 Pinout 17mm x 17mm BGA 292 N co N T e N 2 3 4 5 6 7 8 9 1 Os Os OF O O O3 OF OF OF O O Ot O O OSOS O Os Ot Ot O OF OF Ot OF OF Ot O O O Ot Ot O O OHO Ot OF OF OF OF OF OF OF OF OF OF OF OS o oi O O O OF Oz Os OF O O OF O O of oi of O O OF O O O8 O O8 Os O OF OF O O O O O of o O O O 02 O O O 9 8 O O Of OF oi oof oi O O O O O O O O GNDK GNDK GNDK GNDK 33v 12 GNDK GNDK GNDK 12 6 12 GNDK GNDK GNDK GNDK 12V 12 1 2V 3 3V 3 3V o 12 GNDK GNDK GNDK GNDK 33V 3 3V 3 3V 12 12 12V 3 3V 3 3 3V 3 3 ooi Oz o o o of of 2 O of of of OF o iol O O O O O oi oioio oi os O oi O ol OF oj O OF O OF O O O Of Of O O O Of OF Of Of Of OF Of O 4 O O O Ot OF O O O O OF ot Of Oj O OF O of O o of os O O OF OF Ot OF Of OF OF OF OF O OF O of oj of ol oi 0 0 0 OF Ot O Of O O O O O O oi ot OF oj G G S u u G S S Z Ss Z eS gt gt Figure 38 1 BGA
234. bit 6000 User s Manual digi com 166 16 4 Register Descriptions Timer A Control Status Register TACSR Address 0x00A0 Bit s Value Description 74 0 The corresponding Timer counter has not reached its terminal count Read The corresponding Timer A counter has reached its terminal count These only 1 status bits not the interrupt enable bits are cleared by the read of this register as is the Timer A interrupt 74 0 The corresponding Timer A interrupt is disabled 1 The corresponding Timer A interrupt is enabled 0 0 The clock input for Timer A is disabled 1 The clock input for Timer A is enabled Timer A Prescale Register TAPR Address 0x00A1 Bit s Value Description 7 0 Time constant for the Timer A prescaler This time constant will take effect the next time that the Timer A prescaler counts down to zero Timer A Extended Control Register TAECR Address 0x00A2 Bit s Value Description 7 4 These bits are reserved and should be written with zero 3 0 Timer 11 clocked by the main Timer A clock 1 Timer 11 clocked by the output of Timer A12 2 0 Timer A10 clocked by the main Timer A clock 1 Timer A10 clocked by the output of Timer 12 1 0 Timer 9 clocked by the main Timer clock 1 Timer 9 clocked by the output of Timer A12 0 0 Timer A8 clocked by the main Timer A clock 1 Timer 8 clocked by the output o
235. ble 31 1 External I O Strobes Register External I O Address Range IBOCR 0 0000 0 1 FFF 0x2000 0x3FFF IB2CR 0x5000 0x5FFF IB3CR 0x6000 0x7FFF IBACR 0x8000 0x9FFF IB5CR 0xA000 0xB FFF IB6CR 0xC000 0xDFFF IB7CR 0xE000 0xFFFF The I O strobes can be used for devices on the memory bus or the external I O bus It is also possible to shorten the read strobe by one clock cycle and the write strobe by one half a clock cycle by pulling in the trailing edge which guarantees one clock cycle of hold time for transactions T1 Tw T2 ADDR WRITE DATA WRITE STROBE 1 READ DATA i valid READ STROBE CHIP SELECTSTROBE EXTERNAL 1 0 TIMING with 1 wait state Figure 31 1 External I O Bus Cycles The strobes can be enabled to come out on Parallel Ports C D E F G or H Rabbit 6000 User s Manual digi com 349 By default the I O strobes are configured as read only chip selects with 15 wait states and normal timing These settings will affect the IORD IOWR and BUFEN signals for external I O writes even if no other strobe outputs are enabled in the parallel port registers The most common configuration of the I O strobes is to use them a chip select signals for external devices that share IORD and IOWR for the read and write strobes 31 1 3 I O Handshake An external I O handshake input can be enabled on one of the Parallel Port E pins for any combinat
236. ck If necessary the receiver and transmitter clocks can be output via parallel port pins 1 0 00 The serial port interrupt is disabled 01 The serial port uses Interrupt Priority 1 10 The serial port uses Interrupt Priority 2 11 The serial port uses Interrupt Priority 3 Rabbit 6000 User s Manual digi com 213 Serial Port x Extended Register SEER Address 0x00CD SFER Address 0x00DD Asynchronous Mode Only Bit s Value Description 7 5 000 Disable parity generation and checking 001 This bit combination is reserved and should not be used 010 This bit combination is reserved and should not be used 011 This bit combination is reserved and should not be used 100 Enable parity generation and checking with even parity 101 Enable parity generation and checking with odd parity 110 Enable parity generation and checking with space always zero parity 111 Enable parity generation and checking with mark always one parity 4 0 Normal asynchronous data encoding 1 Enable RZI coding 3 16 bit cell IIDA compliant 3 0 Normal break operation This option should be selected when address bits are expected 1 Fast break termination At the end of break a dummy character is written to the buffer and the receiver can start character assembly after one bit time 2 0 Asynchronous clock is 16x data rate 1 Asynchronous clock is 8x data rate 1 0 Continue character a
237. ck Diagram 95 8 1 2 Registers ecce ei teet iti eene 95 8 2 Dependencies u aa sasasssussssakakasakascans 96 8 221 O Pins aont Say kausa su 96 Rabbit 6000 User s Manual digi com 8 22 Clocks 8 2 3 Other Registers 8 2 4 Interrupts 8 3 Operation 8 4 Register Descriptions 9 Parallel Port B 9 1 OVGtVIEW sci 9 1 1 Block Diagram 9 1 2 R gistets eene 9 2 Dependencies 9 2 1 Pins 9 2 2 Clocks 1 9 2 3 Other Registers 9 2 4 Interrupts 9 3 Operation 9 4 Register Descriptions 10 Parallel Port C 10 1 OvervIew 10 1 1 Block Diagram 10 1 2 Registers 10 2 Dependencies 102 1 VO Pins ere 1022 Clocks eerte 10 2 3 Other Registers 10 2 4 Interrupts 10 3 10 4 Register Descriptions 11 Parallel Port D 11 1 OVervIew 11 1 1 Block Diagram 11 1 2 Registers 11 2 Dependencies 112 1 VO Pins erit 11 22 Clocks 11 2 3 Other Registers 11 2 4
238. ck from the main clock divided by 8 001 Processor clock from the main clock divided by 8 Peripheral clock from the main clock 010 Processor clock from the main clock Peripheral clock from the main clock 011 Processor clock from the main clock divided by 2 Peripheral clock from the main clock divided by 2 100 Processor clock from the 32 kHz clock optionally divided via GPSCR Peripheral clock from the 32 kHz clock optionally divided via GPSCR Processor clock from the 32 kHz clock optionally divided via GPSCR 101 Peripheral clock from the 32 kHz clock optionally divided via GPSCR The main clock is disabled 110 Processor clock from the main clock divided by 4 Peripheral clock from the main clock divided by 4 111 Processor clock from the main clock divided by 6 Peripheral clock from the main clock divided by 6 1 0 00 Periodic interrupts are disabled 01 Periodic interrupts use Interrupt Priority 1 10 Periodic interrupts use Interrupt Priority 2 11 Periodic interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 28 Global Clock Modulator 0 Register GCMOR Address 0x000A Bit s Value Description Clock dither in 1 ns steps from 0 ns to 26 ns Do not modify while the 7 6 00 dither function is enabled 01 Clock dither in 0 5 ns steps from 0 ns to 13 ns 10 Clock dither in 2 ns steps from 0 ns to 52 ns 11 This bi
239. clock is at a high frequency This is independent of the number of wait states which can also be programmed Note that this divider setting is ignored when the processor clock is set to run off the 32 kHz clock 31 2 3 Other Registers Register Function SPCR Enable the external I O bus PCFR PCALR PCAHR PDFR PDALR PDAHR PEFR PEALR PEAHR PFFR PFALR PFAHR PGFR PGALR PGAHR PHFR PHALR PHAHR Select Parallel Port pins as I O strobe outputs Select PD1 PD3 PD5 or PD7 as address bits 6 7 31 2 4 Interrupts There are no interrupts associated with external I O Rabbit 6000 User s Manual digi com 353 31 3 Operation 31 3 1 External I O Bus The following steps must be taken before using external I O bus Enable the external I O bus by writing to SPCR Select whether 6 or 8 address bits are desired N If PBO and PB 1 are needed for clocked serial use and eight address bits are required enable the alternate outputs of address bits 6 and 7 on Parallel Port D by writing to PDALR PDAHR and PDFR Select 8 or 16 bit mode and set the I O timing for a particular device by writing to the appropriate IBxCR and registers for the I O bank desired Make sure to set bit 3 in IBxCR if write access is desired 4 If a strobe other than IORD IOWR or BUFEN is required enable the output of the IBxCR regis ter by writing to the appropriate PXALR PxAHR and PxFR registers 59
240. cted 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 For both situations the deci sion between polling and interrupt driven methods is application dependent 1 Write the interrupt vector for the interrupt service routine to the internal interrupt table 2 Set up the desired data transmit and clock pins by writing to the appropriate parallel port function register PXFR and alternate output register PxALR or 3 Select the appropriate mode by writing to SxCR receive input port and clock source Also select the interrupt priority 4 Select additional options by writing to SxER clock polarity bit order and clock source if external 5 If your serial port will be the master write the desired divider value to for the appropriate serial port or else write a divider to the dedicated 15 bit divider in SxDLR and SxDHR If the dedi cated divider is to be used write a 1 to the most significant bit of SxDHR to enable it 6 There are two methods to transfer a byte write the byte to SxDR and then write 10 or 11 to bits 6 7 of SxCR to enable the transfer or write the byte to SxAR which will automatically start the trans fer NOTE If the internal clock is selected the transmission will begin immedi ately if an external clock is selected the transmission will begin when the clock is detected
241. ction Rabbit 6000 User s Manual digi com 303 Network Port MII Reset Register NBMRR Address 0x0251 Bit s Value Description 7 0 No operation 1 Reset the MII management module 6 0 These bits are ignored and will always return zeros when read Network Port MII Command Register NBMCR Address 0x0252 Bit s Value Description 722 These bits are ignored and will always return zeros when read 1 0 No operation 1 Enable scan MII module performs continuous read cycles 0 0 No operation 1 Perform one MII read cycle Network Port MII Register Address Register NBMRAR Address 0x0254 Bit s Value Description 7 5 These bits are ignored and will always return zeros when read 4 0 MII register address Network Port MII PHY Address Register NBMPAR Address 0x0255 Bit s Value Description 7 5 These bits are ignored and will always return zeros when read 4 0 MII PHY address Network Port MII Write LSB Register NBMWLR Address 0x0256 Bit s Value Description 7 0 LSB of MII write data Rabbit 6000 User s Manual digi com 304 Network Port Write MSB Register NBMWMR Address 0x0257 Bit s Value Description 7 0
242. d Wait State Wait State Writes Reads Writes Register Options 8 bit Yes No No MBxCR 0 1 2 4 1 MBxCR 16 bit Selectable Yes Yes ACSxCR 0 19 0 19 first access MBxCR 8 bit Page Mode Yes No No ACSxCR 0 11 page accesses 0 19 first access MBxCR 16 bit Page Mode Selectable Yes Yes ACSxCR 0 11 page accesses A 16 bit memory device may or may not support byte writes so there is an option to select between these two cases in ACSxCR With the default option any byte writes or unaligned word writes to a 16 bit mem ory will be suppressed i e the WE will not be asserted Any aligned word reads or writes are recognized internally and are combined into just one write transaction on the external bus The other option for the 16 bit bus does not inhibit byte writes or unaligned word writes and replicates the byte data on both halves of the data bus in these cases In this mode the AO and AO signals must be used by the memory to enable the individual bytes Table 5 3 0 and 0 Signals for Various Transaction Types Transaction Type AO A0 Word Read prefetch only Low Low Word Write Low Low Byte Read or Write Even Address Migh Byte Read or Write Odd Address High Low Rabbit 6000 User s Manual digi com 64 All of the power saving modes in Chapter 36 can be used with the 16 bit mode The second advanced bus mode is the Page Mode This mode also can be enab
243. d by the processor but is accessed by the DMA channels Loads the transmit buffer with the last data byte of a frame to enable the Write subsequent transmission of the CRC The DMA automatically writes the last byte of the frame to this address Network Port B Transmit Status Register NBTSR Address 0x0202 Bit s Value Description 7 0 Frame transmission not complete 1 Frame transmission complete 6 0 Frame transmission is not deferring 1 Frame transmission is deferring 5 0 No excessive collisions 1 Frame transmission aborted due to excessive collisions 4 0 No transmit underrun 1 Frame transmission aborted because of a FIFO underrun 3 0 Frame transmission not too long 1 Frame transmission too long 2 0 No excessive defers 1 Frame transmission deferred excessively 1 0 No collisions 1 Frame transmission encountered at least one collision 0 0 No late collisions 1 Frame transmission encountered a late collision later than one slot time Rabbit 6000 User s Manual digi com 295 Network Port B Conirol Status Register NBCSR Address 0x0204 Bit s Value Description 7 6 These bits are reserved and will always read as zero 5 3 0 The corresponding interrupt is disabled Write only 1 The corresponding interrupt is enabled 5 3 Read These bits and the Network Port interrupt are automatically cleared by a read of this register The individual
244. d isr push af determine why the interrupt occurred and take appropriate action ld a 0x40 timeout period of 0x40 32kHz 1 95ms ioi ld SWDTR a Clear the interrupt request pop af ipres ret 4 3 5 CPU Clock Cycle Counter This counter counts the number of CPU cycles that occur during one 32 kHz clock period The least signif icant 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 Rabbit 6000 User s Manual digi com 47 4 4 Register Descriptions Global Control Status Register GCSR Address 0x0000 Bit s Value Description 7 5 000 No reset or watchdog timer timeout since the last read 010 The watchdog timer timed out These bits will be cleared by reading the register 110 Hardware reset occurred These bits will be cleared by reading the register ul Power on reset occurred These bits will be cleared by reading the register 5 0 No effect on the Periodic interrupt write 1 Force a Periodic interrupt to be pending 48 000 Processor clock from the main clock divided by 8 Peripheral clock from the main clock divided by 8 001 Processor clock from the main clock divided by 8 Peripheral clock from the main clock 010 Processor clock from the main clock Pe
245. ddress 0x098D D9LA1R Address 0x099D D10LA1R Address 0x09AD D11LA1R Address 0x09BD D12LA1R Address 0x09CD D13LA1R Address 0x09DD D14LA1R Address 0x09ED D15LA1R Address 0x09FD Bit s Value Description 7 0 Bits 15 8 of the link address are stored in this register Rabbit 6000 User s Manual digi com 283 DMA y Link Addr 23 16 Register DOLA2R Address 0x018E D1LA2R Address 0x019E D2LA2R Address 0x01AE D3LA2R Address 0x01BE D4LA2R Address 0x01CE D5LA2R Address 0x01DE D6LA2R Address 0x01EE D7LA2R Address 0x01FE D8LA2R Address 0x098E D9LA2R Address 0x099E D10LA2R Address 0 09 D11LA2R Address 0x09BE D12LA2R Address 0x09CE D13LA2R Address 0x09DE D14LA2R Address OxO9EE D15LA2R Address OxO9FE Bit s Value Description 7 0 Bits 23 16 of the link address are stored in this register Rabbit 6000 User s Manual digi com 284 25 10 100BASE T ETHERNET 25 1 Overview Network Port B implements a full 10 100Base T Ethernet MAC and PHY no external PHY chip is required The MAC is fully compliant with the IEEE 802 3 Ethernet standard including support for auto negotiation link detection multicast filtering and broadcast addresses A wide variety of transmit and receive options is available including control over frame size CRC attachment max imum allow
246. ddress 0x09A4 0115 Address 0x09B4 0125 Address 0x09C4 D13SAOR Address 0x09D4 D14SAOR Address 0x09E4 D15SAOR Address 0x09F4 Bit s Value Description 7 0 Bits 7 0 of the source address are stored in this register DMA y Source Addr 15 8 Register DOSA1R Address z 0x0185 D1SA1R Address z 0x0195 D2SA1R Address 0x01A5 D3SA1R Address 0x01B5 D4SA1R Address 0x01C5 D5SA1R Address 0x01D5 D6SA1R Address 0x01E5 D7SA1R Address 0x01F5 D8SA1R Address 0x0985 D9SA1R Address 0x0995 D10SA1R Address 0x09A5 D11SA1R Address 0x09B5 D12SA1R Address 0x09C5 D13SA1R Address 0x09D5 D14SA1R Address 0x09E5 D15SA1R Address 0x09F5 Bit s Value Description 7 0 Bits 15 8 of the source address are stored in this register Rabbit 6000 User s Manual digi com 280 DMA y Source Addr 23 16 Register DOSA2R Address 0x0186 D1SA2R Address 0x0196 D2SA2R Address 0x01A6 D3SA2R Address 0x01B6 D4SA2R Address 0x01C6 D5SA2R Address 0x01D6 D6SA2R Address 0x01E6 D7SA2R Address 0x01F6 D8SA2R Address 0x0986 D9SA2R Address 0x0996 D10SA2R Address 0x09A6 D11SA2R Address 0x09B6 D12SA2R Address 0x09C6 D13SA2R Address 0x09D6 D14SA2R Address 0x09E6 D15SA2R Address 0x09F6 Bit s Value Description 7
247. depending on the pin activity Rabbit 6000 User s Manual digi com 403 36 1 1 Registers Register Name Mnemonic I O Address R W Reset Global Control Status Register GCSR 0x0000 R W 11000000 Global Power Save Control Register GPSCR 0x000D R W 00000000 Global Clock Double Register GCDR 0x000F R W 00000000 Rabbit 6000 User s Manual digi com 404 36 2 Operation 36 2 1 Unused Pins Input or bidirectional pins that are unused in a design can pick up noise that may cause the tran sistors in the input buffer to switch states quickly causing unnecessary current draw and in the worst case possibly damaging the processor To avoid this all unused pins should be connected to a weak pullup or pulldown resistor approximately 100 kQ and left as inputs This provides pro tection from noise when the pin is an input but also limits the current draw if the pin gets inadver tently enabled as an output Note that the parallel port pins can all be configured with internal pullup pulldown resistors Exter nal components are not required if these internal resistors are enabled at startup 36 2 2 Unused Peripherals All peripherals in the Rabbit 6000 use gated clocks which disable the clock input to a peripheral whenever it is not enabled for use Disabling any peripherals not being used will help reduce power The A D converter and D A converter peripherals have sleep modes that can be enabled when t
248. drature Decoder 2 Write 1 only 1 Reset Quadrature Decoder 2 to all zeros without causing an interrupt 3 0 Quadrature Decoder 1 did not increment from the maximum count Read 1 Quadrature Decoder 1 incremented from the maximum count to zero only This bit is cleared by a read of this register 2 0 Quadrature Decoder 1 did not decrement from zero Read 1 Quadrature Decoder 1 decremented from zero to the maximum count only This bit is cleared by a read of this register 1 This bit always reads as zero 0 0 No effect on the Quadrature Decoder 1 Write only 1 Reset Quadrature Decoder 1 to all zeros without causing an interrupt Rabbit 6000 User s Manual digi com 338 Quad Decode Control Register QDCR Address 0x0091 Bit s Value Description Disable Quadrature Decoder 2 inputs Writing a new value to these bits 7 6 00 will not cause Quadrature Decoder 2 to increment or decrement 01 Quadrature Decoder 2 inputs from Parallel Port D bits 3 and 2 10 Quadrature Decoder 2 inputs from Parallel Port E bits 3 and 2 11 Quadrature Decoder 2 inputs from Parallel Port E bits 7 and 6 5 0 Eight bit quadrature decoder counters both channels 1 Ten bit quadrature decoder counters both channels 4 This bit is reserved and should be written as zero Disable Quadrature Decoder 1 inputs Writing a new value to these bits 3 2 00 will not cause Quadrature Decode
249. dress 4 Register NBSA4R 0x0264 R W 00000000 Network Port B Station Address 5 Register NBSASR 0 0265 00000000 Rabbit 6000 User s Manual digi com 289 25 2 Dependencies 25 2 1 I O Pins The Ethernet port interface has 11 dedicated signal pins which are listed in Table 25 1 Table 25 1 Network Port B Interface Section Signal Direction Function TX Output Differential transmit data TX Output Data RX Input Differential receive data RX Input XTL_25MI Clock Optional 25MHz crystal input XTL_25MO LINK_LED Output Link status active low TX_LED Output TX status active low LEDs RX_LED Output RX status active low Output Speed status lowz10MBit RSET Bias resistor Power 13Q to ground optimal ETH_2 5V 2 5V supply 25 2 2 Clocks The network port requires a 25 MHz clock input for 10 100Base T operation the standard opera tion is to install a 25 MHz main clock and select the internal clock sharing option in MSCR If a main clock other than 25 MHz is desired a separate 25 MHz oscillator exists on the XTL_25MI XTL 25MO clocks An external crystal can be attached or a 25 MHz clock can be applied directly to XTL_25MO For optimal power reduction the XTL_25MI 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 MS
250. e go back to step 1 If not it should go back to step 5 to send the next byte 6 Slave Mode Data Read To read data in slave mode perform the following operations cL v sm Set the slave address by writing to SGSAXR Set slave mode by clearing bit 2 and enable the controller by setting bit 1 of SGCOR Monitor bits 5 and 8 of SGSxR to determine when byte has been received for the correct slave address Bit 2 should also be set and bits 0 and 1 clear Set bit 7 of SGCOR to start byte read Also set bit 6 if this is the final byte to be read Monitor bit 5 of SGSxR to determine when the byte has been received Read the data byte from SGDR 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 Rabbit 6000 User s Manual digi com 394 35 4 Register Descriptions Serial Port G Control 0 Register SGCOR Address 0x0580 Bit s Value Description 7 0 Insert wait states on the I C bus by pulling SCL low Ready to receive or transmit one byte This bit is automatically cleared 1 after one byte is received or transmitted or when a start or stop condition is detected 6 0 Send ACK when in master receive or slave receive mode 1 Send NACK when in master receive or slave receive mode 5 0 No effect 1 Initiate a stop condition
251. e D8 D8 Control IORD Output I O Read Enable C7 9 Output Write Enable C8 B9 Rabbit 6000 User s Manual digi com 436 Table 38 3 Rabbit 6000 Pin Descriptions Pin Group Pin Name Direction Function BGA 292 Ball BGA 233 Ball PA7 D10 Bll PA6 C10 C10 PAS B7 C8 PA4 D7 B Input Output Parallel Port A C6 PA2 C5 D7 PAI D6 C7 PAO D5 B7 PB7 C14 D12 PB6 B14 A14 PB5 A14 C12 PB4 C13 A13 PB3 Input Output Parallel Port B B13 D11 PB2 B11 A12 PB1 All D10 PBO H19 G14 PC7 E17 A16 PC6 D19 D14 5 19 15 PC4 B18 14 Input Output Parallel Port C D14 D13 PC2 Al7 Al5 16 B14 PCO A15 C13 T O Ports PD7 H18 C17 PD6 G20 E15 PD5 G19 B17 PD4 H17 C16 PD3 Input Output Parallel Port D G18 F14 PD2 F19 15 PDI F18 Al7 PDO C20 C15 PE7 L19 H14 PE6 K18 F17 5 19 G15 PE4 J18 F16 PE3 Input Output Parallel Port E 117 17 2 J19 D17 PE1 J20 E16 PEO H20 15 PF7 U20 114 PF6 P18 M17 PF5 R19 L15 PF4 T20 L16 PF3 Input Output Parallel Port F N18 L17 PF2 R20 K14 PF1 M18 K15 PFO L18 H15 Rabbit 6000 User s Manual digi com 437 Table 38 3 Rabbit 6000 Pin Descriptions Pin Group Pin Name Direction Function BGA 292 Ball BGA 233 Ball PG7 M2 H4 PG6 N2 H3 PG5 P2 GI PG4 M H2 ie 3 Input Output Parallel Port G N J4 PG2 R2 H1 PG1 V20 M15 Ports PGO 19 N17 cont d PH7 E
252. e destina tion are internal I O the source register s transfer request is used by the DMA channel and not the destination register s request The DMA channels support both byte and word transfers although most I O transfers are byte only the Ethernet Wi Fi and USB ports are special cases When the 16 bit bus is enabled and the DMA source or destination address is a network port data register the DMA will attempt to transfer words if the memory address is aligned The same is true for memory to memory transfers if both the source and the destination addresses are aligned There are two inputs available for requests linked to external I O devices DREQO and DREQI These two external requests may be assigned to any DMA channel These requests may also be used by a channel that has an internal I O as a destination In this case the external request acts as a flow control signal for the DMA transfers because the external request is ANDed with the automatically connected internal request To facilitate periodic DMA transfers there is also an internal timed request This request is generated from a programmable 16 bit counter and may be assigned to any DMA channel As in the case of the external requests this request is ANDed with any internal or external request that is also assigned to that DMA channel This periodic request can be programmed to transfer one byte or an entire buffer The single byte option is useful for drivi
253. e enabled from pins PD2 PE2 or PE6 External DMA Request 1 can be enabled from pins PD3 PE3 or PE7 The DMA can be directed to use either the memory bus or the External I O bus to perform its transfers and will use either the memory bus or External I O bus strobes as appropriate 24 2 2 Clocks The DMA peripheral uses the peripheral clock for all operations If the timed request option is enabled then the 16 bit timed request counter will be clocked by the peripheral clock and will provide a DMA request each time it counts down to zero 24 2 3 Other Registers Register Function Sets number of wait states for DMA accesses to NCD WES the Wi Fi peripheral 24 2 4 Interrupts Each DMA channel has its own dedicated interrupt that can occur at the end of any DMA transfer as spec ified in DyCR normally loaded from the buffer descriptor The interrupt request is automatically cleared when the interrupt is handled The DMA interrupt vectors in the EIR starting at offsets 0x080 0x0F0 for DMA Channels 0 to 7 and 0 180 0 1 0 for DMA Channels 8 to 15 They can be set as Priority 1 2 or 3 Rabbit 6000 User s Manual digi com 255 24 3 Operation It is possible to set up and start a DMA operation by writing directly to all the relevant address length and control registers but it is expected that the typical operation would be to create a buffer descriptor in mem ory write the address of that descriptor to
254. e of the peripheral clock Parallel Port C Data Direction Register PCDDR Address 0x0051 Bit s Value Description 7 0 0 The corresponding port bit is an input 1 The corresponding port bit is an output Parallel Port C Alternate Low Register PCALR Address 0x0052 Bit s Value Description 7 6 00 Parallel Port C bit 3 alternate output 0 TXC 01 Parallel Port C bit 3 alternate output 1 13 10 Parallel Port C bit 3 alternate output 2 TIMER C3 11 Parallel Port C bit 3 alternate output 3 SCLKD 5 4 00 Parallel Port C bit 2 alternate output 0 TXC 01 Parallel Port C bit 2 alternate output 1 I2 10 Parallel Port C bit 2 alternate output 2 TIMER C2 11 Parallel Port C bit 2 alternate output 3 TXF 3 2 00 Parallel Port C bit 1 alternate output 0 TXD 01 Parallel Port C bit 1 alternate output 1 I1 10 Parallel Port C bit 1 alternate output 2 TIMER 11 Parallel Port C bit 1 alternate output 3 RCLKF 1 0 00 Parallel Port C bit 0 alternate output 0 TXD 01 Parallel Port C bit O alternate output 1 IO 10 Parallel Port C bit 0 alternate output 2 TIMER 11 Parallel Port C bit 0 alternate output 3 TCLKF Rabbit 6000 User s Manual digi com 110 Parallel Port C Alternate High Register PCAHR Address 0x0053 Bit s Value Description 7 6 00 Parallel Port C bit 7 alternate output 0 TXA
255. e space FMO and biphase mark IrDA compliant RZI encoding is also available in HDLC mode it reduces the bit widths to 1 4 the normal width which allows the serial port signal to be connected directly to an IrDA transceiver Rabbit 6000 User s Manual digi com 200 If an internal clock is selected the serial port data clocks can be generated from the appropriate 8 bit timer Timer A2 for Serial Port E and Timer A3 for Serial Port F or from a dedicated 15 bit divider In HDLC mode the bit data rate is equal to the data clock rate divided by 16 When using an external clock a 1x same speed as the data rate clock is supported In this case the maximum data rate is 1 6 of the peripheral clock rate The receive clock is generated from the transitions in the data stream via a digital phase locked loop 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 Serial Ports P eripheral 15 bit Serial Port Clock Divider Serial Data Control Clock Rx Buffer Latched Rx Pins SxDR SxAR SxLR Latched i Serial P ort Interrupt Status Request Rabbit 6000 User s Manual digi com 201 20 1 2 Registers Register Name Mnemonic Address R W Reset Serial Po
256. e state of LP CRC bits 7 0 ECC Write 1 Register ECW1R Address 0x05C8 Bit s Value Description 7 0 Read LP CRC bits 16 23 used for reverse bit order cases Write Set the state of LP CRC bits 15 8 ECC Write 2 Register ECW2R Address 0x05C9 Bit s Value Description 7 0 Read LP CRC bits 8 15 used for reverse bit order cases Write Set the state of LP CRC bits 23 16 ECC Write 3 Register Address 0x05CA Bit s Value Description 7 0 Read LP CRC bits 0 7 used for reverse bit order cases Write Set the state of LP CRC bits 31 24 ECC Count 0 Register ECCOR Address 0x05CB Bit s Value Description 7 0 Read Returns bits 7 0 of the ECC counter Write Set bits 7 0 o f the ECC counter ECC Count 1 Register ECC1R Address 0x05CC Bit s Value Description 7 0 Read Returns bits 15 8 of the ECC counter Write Set bits 15 8 o f the ECC counter Rabbit 6000 User s Manual digi com 388 35 PERIPHERAL SERIAL PORT G 35 1 Overview Serial Port G in the Rabbit 6000 is a fully featured re peripheral It supports the following features of the Phillips C standard Master or slave mode Standard 100 kbit s and fast 400 kbit s clock modes 7 bit 10 bit and general call addressing modes Programmable slave address Master transmit master receive slave transmit and slave receive modes Multi master mode General call address detection in slave mode The PC
257. e wide port with each bit programmable for data direction and drive level These are simple inputs and outputs controlled and reported in the Port H Data Register PHDR All of the Parallel Port H pins have alternate output functions Parallel Port H has no alternate input func tionality When used as outputs the Parallel Port H bits are buffered with the data written to PHDR transferred to the output pins Each bit can either be programmed as open drain or driven high and low Parallel Port H acts as the upper byte of the external I O bus when the 16 bit mode is enabled all other Parallel Port H functionality will be disabled automatically when that mode is in effect The drive strength and slew rate can be individually controlled for each Parallel Port H pin In addition a 75 kQ pullup or pulldown resistor can be enabled on each pin Note that it is possible for either Flexible Interface Module to use any of the parallel ports See Chapter 33 for more information Table 15 1 Parallel Port H Pin Alternate Output Functions PinName Alt Out1 AltOut2 Alt Out3 17 PWM3 SCLKC D15 PH6 16 PWM2 TXE D14 PH5 15 PWMI RCLKE D13 PH4 14 12 PHB B TIMER SCLKD D11 PH2 TIMER C2 TXF D10 PHI n RCLKF D9 PH0 10 TCLKF D8 Rabbit 6000 User s Manual digi com 153 15 1 1 Block Diagram Parallel Port H Serial Por
258. e write protect block registers to zero Table 5 4 Memory Protection Options Method Block Size Registers Used Memory Bank 128KB 4MB MBxCR MECR Write Protect Blocks 64 KB WPxR Write Protect Segment A B 4 KB 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 The stack checking can be enabled or disabled by writing to STKCR Rabbit 6000 User s Manual digi com 67 5 4 Register Descriptions MMU Instruction Data Register MMIDR Address 0x0010 Bit s Value Description Internal I O addresses are decoded using only the lower eight bits of the 7 0 internal I O address bus This restricts internal I O addresses to the range 0x0000 0x00FF Internal I O addresses are decoded using all 15 bits of the address internal 1 address bus This option must be selected to access internal I O addresses of 0x0100 and higher 6 This bit is reserved an must be wr
259. ed by 4 On Divided by 6 On Input frequency 3 Divided by 4 Off Input frequency 4 Divided by 8 On Divided by 6 Off Input frequency 6 Divided by 8 Off Input frequency 8 Disabled 32 768 kHz 2 16 384 kHz Off 32 kHz divider N A 4 8 192 kHz used 8 4 096 kHz 16 2 048 kHz Depending on the application the processor can continue executing code normally when the main oscillator is divided down to a lower value However when the processor clock is running off the 32 kHz clock the code and data contents of the 1 RAM will not be preserved The lowest fre quency for the processor clock that will preserve the contents of the IMB 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 Rabbit 6000 User s Manual digi com 406 36 2 4 Short Chip Selects When running at a reduced clock speed it is likely that the chip selects for external devices will not need to be active for an entire clock cycle By reducing the width of the chip select the power consumption of the memory chip can be reduced without having any affect on the processor itself For reduced processor speeds based on the main oscillator a short chip select can be enabled in GPSCR this feature is not available when the processor is running at full speed This feature can be enabled separately for both reads
260. ed frame size and interpacket gap length The receiver and transmitter each have a dedicated 2048 byte FIFO The Network Port B receiver transfers both data and status information to memory via the DMA eliminating the need for receive data or status interrupts and dedicated receive status registers The network port appends six bytes of status information to the last byte of the received data Buffer and byte counts in the DMA can be used to find this status information in memory In cases where a received frame has been discarded because of an error only these six bytes of status will be transferred to memory The DMA must be programmed to close a buffer on end of frame as the network port marks the last byte of status this way The Network Port B transmitter uses interrupts because the DMA has no way of knowing when or if the frame has successfully been sent Both the receive and transmit FIFOs are capable of DMA fly by operation The network port requires an accurate 25 MHz clock to generate the 100 Mbit s serial rate of 100Base T This clock can come from dedicated pins in the PHY interface or from the main clock if a 25 MHz input is used The clock for the network port may also be disabled to conserve power The network port transmitter precedes the transmit data automatically with a preamble and start frame delimiter and appends CRC and the end frame delimiter after the last byte Frame trans mission starts automatically once the trans
261. ed inverter 5 12 pF 32 768 kHz C2 C1 values may vary or 1 may be eliminated C1 Figure 2 4 Basic 32 768 kHz Oscillator Circuit Rabbit 6000 User s Manual digi com 26 The 32 768 kHz circuit consumes microampere level currents and has a very high impedance making it susceptible to noise moisture and environmental contaminants It is strongly recommended to confor mally coat this circuit to limit the effects of humidity and dust on the oscillation frequency 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 The 32 768 kHz oscillator is slow to start oscillating after power on The startup delay may be as much as 5 seconds For this reason a wait loop in the BIOS waits until this oscillator is oscillating regularly before continuing the startup procedure If the clock is battery backed there will be no startup delay since the oscillator is already oscillating Crystals with low series resistance R lt 35 will start faster The 32 kHz oscillator can be used to drive the processor and the peripheral clock to provide significant power savings in ultra sleepy modes The 32 kHz oscillator can be divided by 2 4 8 or 16 to provide clock speeds as low as 2 048 kHz although there are limitations on use of the 1MB internal RAM at those low clock speeds S
262. ee Section 5 3 1 Internal RAM Special self timed chip selects are available to keep the memory devices enabled for as short a time as possible when an ultra sleepy mode is enabled see Chapter 36 for more details on reducing power consumption Table 2 6 Ultra Sleepy Clock Modes GPSCR Processor and Setting Peripheral Clock xxxxx000 32 768 kHz 100 16 384 101 8 192 kHz Xxxxx110 4 096 kHz 111 2 048 kHz When the 32 kHz clock is enabled as the CPU clock the periodic interrupt is disabled automatically The real time clock and watchdog timers keep running and use the full 32 kHz clock speed even when the pro cessor and peripheral clocks use a divider on the 32 kHz clock Rabbit 6000 User s Manual digi com 27 2 4 Register Descriptions Global Control Status Register GCSR Address 0x0000 Bit s Value Description 7 5 000 No reset or watchdog timer timeout since the last read rd only 010 The watchdog timer timed out These bits will be cleared by reading the register 110 Hardware reset occurred These bits will be cleared by reading the register ul Power on reset occurred These bits will be cleared by reading the register 5 0 No effect on the Periodic interrupt write 1 Force Periodic interrupt to be pending nm 000 Processor clock from the main clock divided by 8 Peripheral clo
263. eight transfers per burst 101 Maximum sixteen transfers per burst 110 Maximum thirty two transfers per burst 111 Maximum sixty four transfers per burst 2 0 These bits are reserved and should be written with zeros Rabbit 6000 User s Manual digi com 271 DMA y Termination Byte Register DOTBR Address 0x0108 D1TBR Address 0x0118 D2TBR Address 0x0128 D3TBR Address 0x0138 D4TBR Address 0x0148 D5TBR Address 0x0158 D6TBR Address 0x0168 D7TBR Address 0x0178 D8TBR Address 0x0908 09 Address 0x0918 D10TBR Address 0x0928 D11TBR Address 0x0938 D12TBR Address 0x0948 D13TBR Address 0x0958 D14TBR Address 0x0968 D15TBR Address 0x0978 Bit s Value Description 7 0 Byte value that if matched will terminate a buffer Rabbit 6000 User s Manual digi com 272 DMA y Termination Mask Register DOTMR D1TMR D2TMR D3TMR D4TMR D5TMR D6TMR D7TMR D8TMR D9TMR D10TMR D11TMR D12TMR D13TMR D14TMR D15TMR Address 0x0109 Address z 0x0119 Address 0x0129 Address 0x0139 Address 0x0149 Address 0x0159 Address 0x0169 Address 0x0179 Address 0x9109 Address 0x0919 Address 0x0929 Address 0x0939 Address 0x0949 Address 0x0959 Address 0x0969 Address 0x0979 Bit s 7 0 Value Mask for termin
264. empty Read only 1 Tx FIFO empty FIMB Outbound Interrupt Register FBOIR Address 0x7003 Bit s Value Description 7 0 The Interrupt code to the Flexible Interface Module processor has been cleared by the FIM Read only 1 Flexible Interface Module processor interrupt acknowledge Interrupt value from the Flexible Interface Module processor The Flexible Interface Module processor writes a non zero value which 6 0 read _ causes an interrupt request 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 Rabbit 6000 User s Manual digi com 378 FIMB Inbound Interrupt Register FBIIR Address 0x7004 Bit s Value Description 7 0 Clear this bit after the interrupt code from the Flexible Interface Module processor has been cleared by the FIM Acknowledge interrupt request This bit must remain set until the 1 interrupt code from the Flexible Interface Module processor has been cleared Interrupt value to the Flexible Interface Module processor Writing a non zero value to this field causes an interrupt to be generated to the Flexible 6 0 write Interface Module processor This field should not be cleared until bit 7 of the Outbound Interrupt Register is set by the Flexible Interface Module processor T
265. enabled for Serial Ports A or B 2 If a particular drive strength slew rate or pullup down resistor status is desired for a Parallel Port B pin set that in the appropriate PBxCR 3 If the slave port or the external I O bus is selected refer to the chapters for those peripherals for fur ther setup information Once the port is set up data can be read or written by accessing PBDR The value in PBDR of an output pin will reflect its current output value but any value written to an input pin will not appear on that pin until that pin becomes an output 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 Rabbit 6000 User s Manual digi com 103 9 4 Register Descriptions Parallel Port B Data Register PBDR Address 0x0040 Bit s Value Description 7 0 Read The current state of Parallel Port B pins 7 is reported The Parallel Port B buffer is written with this value for transfer to the Write Parallel Port B output register on the next rising edge of the peripheral clock Parallel Port B Data Direction Register PBDDR Address 0x0047 Bit s Value Description 7 0 0 The corresponding port bit is an input 1 The corresponding port bit is an output
266. enabled to use CSO OEO and WEO in 8 bit mode with four wait states and write protection enabled It is expected that an external flash device con taining startup code is attached to those strobes The other memory banks come up undefined and their controls should be set via the appropriate MBxCR register to a valid setting before use If SYSCFG is high Memory Bank 0 is enabled to use CS3 OEO and WEO in 16 bit mode This allows the processor to start operation directly out of the internal 1 MB RAM The size of the memory banks is defined in the MECR register The default size is 256 KB the bank selec tion looks at the two most significant address bits but this value can be adjusted down to 128 KB or up to 4 MB per bank Each bank can be further subdivided into two equal sized sub banks by configuring them in MBxLCR and MBxHCR Each sub bank can be mapped to a separate chip select enable combination allowing up to eight separate devices to be mapped in simultaneously The two address bits used to select the bank can be inverted in MBXCR MBxLCR MBxHCR which enables mapping different sections of a memory device larger than the current memory bank into memory Figure 5 4 shows an example of this feature Rabbit 6000 User s Manual digi com 62 OxFFFFF 0xC0000 OxBFFFF 1MB Mem ory Device 0x80000 Ox7FFFF 0x40000 OXx3FFFF 0x00000 OxFFFFF 0 0000 OxBFFFF 1MB Memory Device 0x80000 Ox7FFFF 0x40000 Ox
267. end and receive data to the slave port data registers on the slave devices In this setup pins PD6 and PD7 set up as chip selects for the two slave devices and PEO and PE1 are used as external interrupt inputs to monitor the SLVATTN signals from the slaves In this setup the slave port is used as follows e The slave responds to the interrupt and reads the slave port data registers When the slave wishes to send data to the master it writes the slave port data registers writing SPDOR last which enables the SLVATTN signal When the master detects the change on SLVATTN it reads the slave port data registers 21 3 1 Master Setup 1 Enable the I O strobes on PD6 and PD7 as chip selects by writing to the appropriate Parallel Port D pin and External I O registers 2 Enable the external interrupts on PEO and PE1 by writing to the appropriate external interrupt regis ters 21 3 2 Slave Setup 1 Write the vector to the interrupt service routine to the internal interrupt table 2 Configure SPCR to select the interrupt priority note that interrupts will be enabled once this value is set Rabbit 6000 User s Manual digi com 220 21 3 3 Master Slave Communication 1 The master writes data to the appropriate external I O address on the data bus for the slave device and register desired For example in the setup described here the master would write to register SPD2R on the first slave by writing to the address 0x
268. ening and closing flags except for the inserted zeros to the receiver data buffer Last Byte Bit Pattern Valid Data Bits bbbbbbbO 7 bbbbbb01 6 bbbbb011 5 bbbb0111 4 50501111 3 55011111 2 50111111 1 Rabbit 6000 User s Manual digi com 206 Several types of data encoding are available in the HDLC mode In addition to the normal NRZ they are NRZI biphase level Manchester biphase space biphase mark 1 Examples of these encodings are shown below Note that the signal level does not convey infor mation in NRZI biphase space and biphase mark Instead it is the placement of the transitions that determine the data In biphase level it is the polarity of the transition that determines the data SERIAL CLOCK NRZ DATA NRZI NRZI BIPHASE LEVEL BIPHASE SPACE BIPHASE SPACE BIPHASE MARK K SE MARK DATA Figure 20 1 Examples of Data Encoding In the HDLC Mode In the HDLC mode the internal clock comes from the output of Timer A2 Timer A3 or the dedi cated divider The timer divider output is divided by 16 to form the transmit clock and is fed to the digital phase locked loop DPLL to form the receive clock The DPLL is basically just a divide by 16 counter that uses the timing of the transitions on the receive data stream to adjust its count The DPLL adjusts the count so that the DPLL output will be properly placed in the bit cells to sample
269. equest supplied to DMA Channel 9 1010 Timed DMA request supplied to DMA Channel 10 1011 Timed DMA request supplied to DMA Channel 11 100 Timed DMA request supplied to DMA Channel 12 101 Timed DMA request supplied to DMA Channel 13 1110 DMA request supplied to DMA Channel 4 1111 Timed DMA request supplied to DMA Channel 15 DMA Timed Request Divider Low Register DTRDLR Address z 0x0116 Bit s Value Description 7 0 Write 2 LSBs of the limit value for the DMA timed request timer are Rabbit 6000 User s Manual digi com 270 DMA Timed Request Divider High Register Address 0x0117 Bit s Value Description 7 0 Waite The eight MSBs of the limit value for the DMA timed request timer are stored DMA Cycle Steal Timing Control Register DCSTCR Address 0x0125 Bit s Value Description 7 6 Ox Fixed cycle steal DMA channel priority Higher channel number has higher priority 10 Rotating cycle steal DMA channel priority Priority rotates highest channel number to lowest channel number after every transfer Rotating cycle steal DMA channel priority Priority rotates highest 11 channel number to lowest channel number after the current channel request is serviced 5 3 000 Maximum one transfer per burst 001 Maximum two transfers per burst 010 Maximum three transfers per burst 011 Maximum four transfers per burst 100 Maximum
270. er 304 Network Port B MII Write MSB Register 305 Network Port B Multicast Filter x Register 299 Network Port B Physical Address x Register 299 Network Port B Receive Control Register 298 Network Port Retransmit Max Register 302 Network Port B Station Address x Register 306 Network Port B Transmit Control Register 298 Network Port B Transmit Extra Status Register 299 Network Port B Transmit Pause LSB Register 297 Network Port B Transmit Pause MSB Register 297 298 Network Port B Transmit Status Register 295 Network Port tite 311 Network Port D Network Port D Wait Register 321 Parallel Port A eee 95 Parallel Port A Data Register 98 Parallel Port Ax Control Register 98 Slave Port Control Register 99 Parallel Port B eee Pete 102 Parallel Port B Data Direction Register 104 Parallel Port B Data Register 104 Parallel Port Bx Control Register 104 Slave Port Control Register 105 Parallel Port 4 n tree 108 Parallel Port C Alternate High Register 111 Parallel Port C Alternate Low Register 110 Parallel Port C Data Direction Register 110 Parallel Port C Data Register 110 Parallel Port C Drive Control Register 111 Parallel Port C Function Register
271. er Watchdog Timer Test Register WDTTR Address 0x0009 Bit s Value Description Clock the least significant byte of the watchdog timer from the peripheral 7 0 0x51 clock 0x52 Clock the most significant byte of the watchdog timer from the peripheral clock 0x53 Clock both bytes of the watchdog timer in parallel from the peripheral clock Disable the watchdog timer This value by itself does not disable the watchdog timer Only a sequence of two writes where the first write is 0x54 0x51 0x52 or 0x53 followed by a write of 0x54 actually disables the watchdog timer The watchdog timer will be re enabled by any other write to this register other Normal clocking 32 kHz clock for the watchdog timer 5 0 read __ Return the most significant 6 bits of the CPU clock cycle counter Rabbit 6000 User s Manual digi com 50 Secondary Watchdog Timer Register SWDTR Address 0x000C Bit s Value Description The time constant for the secondary watchdog timer is stored This time constant will take effect the next time that the secondary watchdog 7 0 counter counts down to zero The timer counts modulo n 1 where n is the programmed time constant The secondary watchdog timer can be disabled by writing the sequence 0x5A 0x52 0x44 to this register Global ROM Configuration Register GROM Address 0x002C Bit s Value Description 7 0 Program
272. er s Manual digi com 193 Serial Port x Status Register SASR Address 0x00C3 SBSR Address 0x00D3 Asynchronous Mode Only SCSR Address 0x00E3 SDSR Address 0x00F3 Bit s Value Description 7 0 The receive data register is empty There is a byte in the receive buffer The serial port will request an 1 interrupt while this bit is set The interrupt is cleared when the receive buffer is empty 6 0 The byte in the receive buffer is data received with a valid stop bit The byte in the receive buffer is an address or a byte with a framing error 1 If an address bit is not expected and the data in the buffer is all zeros this is a break 5 0 The receive buffer was not overrun 1 The receive buffer was overrun This bit is cleared by reading the receive buffer 4 0 The byte in the receive buffer has no parity error or was not checked for parity 1 The byte in the receive buffer had a parity error 3 0 The transmit buffer is empty The transmit buffer is not empty The serial port may request an interrupt l when the transmitter takes a byte from the transmit buffer Transmit interrupts are cleared when the transmit buffer is written or any value which will be ignored is written to this register 2 0 The transmitter is idle The transmitter is sending a byte An interrupt may be generated when the 1 transmitter clears this bit which occurs only if the transmitter is ready to
273. er PGFR Address 0x004D Bit s Value Description 7 0 0 The corresponding port bit functions normally 1 The corresponding port bit carries its alternate signal as an output See Table 14 1 Parallel Port G Drive Control Register PGDCR Address z 0x004E Bit s Value Description 7 0 0 The corresponding port bit as an output is driven high and low 1 The corresponding port bit as an output is open drain Parallel Port G Data Direction Register PGDDR Address 0x004F Bit s Value Description 7 0 0 The corresponding port bit is an input 1 The corresponding port bit is an output Rabbit 6000 User s Manual digi com 151 Parallel Port Gx Control Register PGOCR Address 0x04C8 PG1CR Address 0x04C9 PG2CR Address 0x04CA PG3CR Address 0x04CB PG4CR Address 0x04CC PG5CR Address 0x04CD PG6CR Address 0x04CE PG7CR Address 0x04CF Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 222 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 00 No pullup or pulldown resistor 01 75 pullup resistor 10 75 pulldown resistor 11 75 keeper Rabbit 6000 User s Manual digi com 152 15 PARALLEL PORT H 15 1 Overview Parallel Port H is a byt
274. er PWBAR and PWM Block Pointer Register PWBPR are available The pointer register contains the address of the PWM register to be accessed via the access register Each read or write of the access register automatically increments the pointer register through the sequence shown below Note that only the lower three bits of the pointer register actually change This allows the DMA to write to a fixed internal I O location but still program all of the PWM registers The pointer register can be written and read if necessary Normally the pointer register is initial ized to 0x88 the first PWM register and the DMA then transfers blocks of eight bytes to completely reprogram the PWM 0x88 gt 0x89 gt 0 8 gt Ox8B gt 0 8 gt 0 8 gt Ox8E gt Ox8F gt When the DMA destination address is the PWBAR the DMA request from the PWM is automatically connected to the DMA Rabbit 6000 User s Manual digi com 342 30 1 1 Block Diagram Pulse Width Modulator perclk Interrupt 9 Counter Generation Pini TAT9R PWM Channel x sesu EE PyAHR 30 1 2 Registers Register Name Mnemonic I O Address R W Reset PWM LSB 0 Register PWLOR 0 0088 xxxxx00x PWM MSB 0 Register PWMOR 0 0089 PWM LSB Register PWLIR 0 008 xxxxx00x PWM MSB Register PWMIR 0 008 PWM LSB 2 Register PWL2R 0 008 00 PWM
275. er is not involved in the transfer 2 0 Controller is not busy ud 1 Controller is busy that is between start and stop only 1 0 Controller has not received or sent non ACK Road 1 Controller has received or sent a non ACK only 0 0 Controller is not in master receive or slave transmit mode 2 1 Controller is in master receive or slave transmit mode Rabbit 6000 User s Manual digi com 397 Serial Port G Status 1 Register SGS1R Address 0x0585 Bit s Value Description 7 4 These bits reserved and will always return zeros 3 0 No start condition detected the C bus Read Start condition detected on the C bus While the underlying status bit is only 1 cleared by the read of SGSOR the bit latched in the interface remains set until the next read of SGSOR 2 0 No lost arbitration Read Lost arbitration master mode While the underlying status bit is cleared ly 1 by the read of SGSOR the bit latched in the interface remains set until the ony next read of SGSOR 1 0 No general call address match Read General call address match slave mode While the underlying status bit oniy 1 is cleared by the read of SGSOR the bit latched in the interface remains y set until the next read of SGSOR 0 0 No slave address match Read Slave address match slave mode While the underlying status bit is o
276. erently when the processor is running at Interrupt Priority 3 the interrupt is generated but will not be handled until the processor drops to a lower priority In most cases a code execution interrupt will be handled at the end of the instruction in which the match occurred However because of the time required to perform a 24 bit address match in the processor a code execution breakpoint that is set on a single byte 2 clock instruction will not be enabled at the end of that instruction but the interrupt will instead occur at the end of the next instruction Note that a breakpoint may be forced to be pending by setting the corresponding bit in BDCR This feature allows a breakpoint request to be used as a virtual single step request by always setting the appropriate bit in the interrupt handler There is a particular sequence of instructions required to exit properly when the interrupt is left pending DMA transfers are treated as normal data reads and writes although the DMA transfer will complete before the interrupt is taken Breakpoints can be enabled for the User Mode the System Mode or both Another breakpoint feature is the ability to disable the RST 28h instruction The RST 28h vector was often used as a breakpoint feature by adding that instruction to code by enabling a bit in BDCR the RST 28h instruction will execute as a NOP instead providing an easy way to disable that type of breakpoint Rabbit 6000 User s Manual di
277. ernal transceiver is accomplished through a 3 wire serial interface Support is also provided for a parallel automatic gain control feedback loop Control for multiple antennas is avail able providing support for separate receive and transmit antennas or switched antenna diversity reception The MAC processing is handled by a combination of the baseband processor and software on the Rabbit any timing critical MAC operations are handled automatically by the baseband These operations include time management and transmission interval spacing The MAC also performs the CRC check of all received frames and handles the virtual carrier sense functionality The Rabbit 6000 supports both the infrastructure and the ad hoc modes Multicast transmissions are sup ported as well The interface to the external transceiver consists of 19 digital pins and 17 analog pins A 20 MHz clock is required as an input either a crystal or an external clock can be used A separate low speed A D converter is available to monitor the transmit power The wireless peripheral also contains an AES encryption decryption engine for both transmitted and received packets 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 high speed differential A D a
278. es Peripheral MII MII Management Clock Clock Management NBMRR NBMWXR XI NBMCR NBMRxR NBMRAR NBMSR NBCFxR NBGxR NBRMR NBCWR NBSAxR NBFLxR Receive MII Interface Rx FIFO Multicast 2048 bytes Filter NBDR NBMFxR NBLDR TX TX RX RX TX LED RXLED Link LED Speed LED Rabbit 6000 User s Manual digi com 287 25 1 2 Registers Register Name Mnemonic I O Address R W Reset Network Port B Data Register NBDR 0x0200 XXXXXXXX Network Port Last Data Register NBLDR 0x0201 XXXXXXXX Network Port B Transmit Status Register NBTSR 0 0202 R 00000000 Network Port B Control Status Register NBCSR 0x0204 R W 00000000 Network Port B Command Register NBCR 0x0206 00000000 Network Port B Transmit Pause LSB Register NBTPLR 0x0208 R W 00000000 Network Port B Transmit Pause MSB Register NBTPMR 0x0209 R W 00000000 Network Port B Transmit Control Register NBTCR 0 020 00000000 Network Port Receive Control Register NBRCR 0 020 00000000 Network Port Transmit Extra Status Register NBTESR 0x020C R W 00000000 Network Port B Phys Addr 7 0 Register NBPAOR 0x0210 w XXXXXXXX Network Port B Phys Addr 15 8 Register NBPAIR 0x0211 w XXXXXXXX Network Port B Phys Addr 23 16 Register NBPA2R 0x0212 w XXXXXXXX Network Port
279. ese timers can generate Rabbit 6000 User s Manual digi com 161 interrupts but the timers themselves cannot They have the option of being cascaded from Timer A12 to provide a larger range of frequencies The individual Timer A capabilities are summarized in the table below There is a bit in the control status register to disable all 12 timers globally Timer eee Interrupt Associated Peripheral rom Al None Yes Parallel Ports D E Timers 2 1 Yes Serial Port E A3 Al Yes Serial Port F A4 Al Yes Serial Port A AS Al Yes Serial Port B A6 Al Yes Serial Port C 7 1 Yes Serial Port D 8 12 Input Capture 9 12 Pulse Width Modulator 10 12 Quadrature Decoder All 12 No Timer B Timer C 12 None No Timers 8 11 There is one interrupt vector for Timer A and a common interrupt priority A common status register TACSR has bits for Timers 1 7 that indicate if the output pulse for that timer has taken place since the last read of the status register These bits are cleared when the status register is read No bit will be lost Either it will be read by the status register read or it will be set after the status register read is complete If a bit is on and the corresponding interrupt is enabled an interrupt will occur when priorities allow However a separate interrupt is not guaranteed for each bit with an enabled interrupt If the bi
280. ess 0x00F8 Bit s Value Description Access the Timer C register pointed to by TCBPR TCBPR is 7 0 automatically updated to the next Timer C register address in the access Timer C Block Pointer Register TCBPR Address 0x00F9 Bit s Value Description 7 5 These bits always read as 0 0 4 0 Five least significant bits of the Timer C register address for indirect Rabbit 6000 User s Manual digi com 183 19 SERIAL PORTS A D 19 1 Overview Serial Ports A B C and D are identical except for the source of the data clock and the transmit receive and clock pins In addition to being used as a regular serial port Serial Port A can be used to bootstrap the processor Each serial port can be used in the asynchronous or the clocked serial mode with an internal or external clock In the asynchronous mode either 7 or 8 data bits can be transferred and a parity bit and or a ninth data bit can be appended as well Parity and the ninth data bits are also detected when they are received The asyn chronous mode is full duplex while the clocked mode can be half or full duplex The transmit and receive buffers have 4 bytes each A serial port interrupt is generated whenever at least one byte is available in the receive buffer whenever a byte is shifted out of the transmit buffer and when ever the transmit buffer is empty Each serial port has a separate interrupt vector The status of each ser
281. et 1 High Register 0 050 Timer Set 2 Low Register TCS2LR 0x0518 Timer Set 2 High Register TCS2HR 0 0519 Timer Reset 2 Low Register TCR2LR 0 051 Timer Reset 2 High Register TCR2HR 0x051B Timer Set 3 Low Register TCS3LR 0 051 Timer Set 3 High Register TCS3HR 0x051D Timer Reset 3 Low Register TCR3LR 0 051 Timer Reset 3 High Register TCR3HR 0 051 Timer Block Access Register TCBAR 0 00 8 w XXXXXXXX Timer C Block Pointer Register TCBPR 0x00F9 W 00000010 Rabbit 6000 User s Manual digi com 178 18 2 Dependencies 18 2 1 I O Pins The four Timer outputs can be directed to bits 0 3 of parallel ports 18 2 2 Clocks The timer in Timer C is a 16 bit up counter clocked by the peripheral clock divided by 2 by the peripheral clock divided by 16 the output of Timer 1 or the output of Timer 11 as selected in TCCR 12 may be used as a prescaler for TA11 18 2 3 Other Registers Register Function GCSR Select peripheral clock mode PCALR PDFR PDALR PEFR PEALR Alternate port output selection PFFR PFALR PGFR PGALR PHFR PHALR TAECR Enables selection of TA12 as prescaler for TA8 11
282. ettings of PHFR PHALR and PHAHR will be ignored The other Parallel Port H registers are still valid Refer to Chapter 33 for more details Rabbit 6000 User s Manual digi com 157 15 4 Register Descriptions Parallel Port H Data Register PHDR Address 0x0034 Bit s Value Description 7 0 Read The current state of Parallel Port H pins PH7 PHO is reported The Parallel Port H buffer is written with this value for transfer to the Write Parallel Port H output register on the next rising edge of the peripheral clock Parallel Port H Alternate Low Register PHALR Address 0x0032 Bit s Value Description 7 6 00 This value is reserved and must not be used 01 Parallel Port H bit 3 alternate output 1 13 10 Parallel Port H bit 3 alternate output 2 TIMER C3 11 Parallel Port H bit 3 alternate output 3 SCLKD 5 4 00 This value is reserved and must not be used 01 Parallel Port H bit 2 alternate output 1 12 10 Parallel Port H bit 2 alternate output 2 TIMER C2 11 Parallel Port H bit 2 alternate output 3 TXF 2 2 00 This value is reserved and must not be used 01 Parallel Port H bit 1 alternate output 1 11 10 Parallel Port H bit 1 alternate output 2 TIMER C1 11 Parallel Port H bit 1 alternate output 3 RCLKF 1 0 00 This value is reserved and must not be used 01 Parallel Port H bit 0 alternate output 1 IO 10 Parallel Port H bit
283. ever Timers A1 A7 decrement to zero by enabling the appro priate bit in TACSR The interrupt request is cleared when TACSR is read The Timer A interrupt vector is in the at offset 0x0A0 It can be set as priority 1 2 or 3 TACR Rabbit 6000 User s Manual digi com 165 16 3 Operation The following steps explain how to set up a Timer A timer 1 Use the default perclk 2 in TAPR as the Timer A input clock You may instead select to divide per clk by 1 256 in 2 Select the source clocks for Timers A2 A7 in TACR Select the source clocks for Timers 8 11 in TAECR 3 Write the desired divider value to TATXR for all timers that will be used 4 Enable Timer A by writing a 1 to bit 0 of TACSR 16 3 1 Handling Interrupts The following steps explain how an interrupt is set up and used 1 Write the vector to the interrupt service routine to the internal interrupt table 2 Configure TACSR to select which timers will generate an interrupt 3 Configure TACR to select the interrupt priority note that interrupts will be enabled once this value is set This should be done last The interrupt request is cleared by reading from TACSR 16 3 2 Example ISR A sample interrupt handler is shown below timerA_isr push af save used registers 14 TACSR clear the interrupt request and get status handle all interrupts flagged in TACSR here pop af restore registers ipres ret Rab
284. f Rx Checksum Second MSB of Rx Checksum Third Receive Status Vector 7 0 LSB of receive frame length Fourth Receive Status Vector 15 8 MSB of receive frame length Fifth Receive Status Vector 23 16 Last RxOV Receive Status Vector 30 24 25 3 1 Setup The following steps explain how to set up Network Port B 1 In MSCR select shared clock if the main clock is 25 MHz and reset the PHY if desired 2 Enable Network Port B by writing to ENPR 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 Rabbit 6000 User s Manual digi com 291 Select the desired configuration of transmit and receive operation by writing to NBTCR NBTESR and MBRCR Write the device s physical MAC address to the physical address NBPAXR and station address registers NBSAXR If desired write to the multicast filter registers NBMFxR to generate a multicast filter Select other options in the configuration registers NBCFxR NBGxR NBRMR NBCWR and NBFLxR 10 Enable the network port transmitter by writing to NBTCR 11 Enable the network port receiver by writing to NBRCR 25 3 2 Transmit The following steps explain how to transmit an Ethernet packet 1 Set up a DMA buffer descriptor that will read the packet data from memory a
285. f Timer 12 Rabbit 6000 User s Manual digi com 167 Timer A Conirol Register TACR Address 0x00A4 Bit s Value Description 7 0 Timer A7 clocked by the output of TAPR 1 Timer A7 clocked by the output of Timer A1 6 0 Timer A6 clocked by the output of TAPR 1 Timer 6 clocked by the output of Timer 1 5 0 Timer 5 clocked by the output of TAPR 1 Timer 5 clocked by the output of Timer 1 4 0 Timer A4 clocked by the output of TAPR 1 Timer A4 clocked by the output of Timer A1 3 0 Timer A3 clocked by the output of TAPR 1 Timer clocked by the output of Timer 1 2 0 Timer A2 clocked by the output of TAPR 1 Timer A2 clocked by the output of Timer A1 1 0 00 Timer A interrupts are disabled 01 Timer A interrupt use Interrupt Priority 1 10 Timer A interrupt use Interrupt Priority 2 11 Timer A interrupt use Interrupt Priority 3 Timer A Time Constant x Register TAT1R Address 0x00A3 TAT2R Address 0x00A5 TAT3R Address 0x00A7 TAT4R Address 0x00A9 TAT5R Address 0x00AB TAT6R Address 0x00AD TAT7R Address 0 00 TAT8R Address 0x00A6 TAT9R Address 0x00A8 TAT10R Address z 0x00AA TAT11R Address 0x00AC TAT12R Address 0x00AE Bit s Value Description Time constant for the Timer A counter This time constant will take effect 7 0 the next time that the Timer
286. f logical space an option is provided to map code and data accesses in the same address space to separate devices This is accomplished by enabling the inversion of A16 and the most significant bit of the bank select bits for accesses in the root and data segments Careful use of these features allows both code and data to separately use up to 64 KB of logical memory The RAM segment register RAMSR provides a shortcut for updating code by accessing it as data It pro vides a 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 Rabbit 6000 User s Manual digi com 66 5 3 6 Memory Protection Memory blocks may be protected at three separate granularities as shown in Table 5 4 Writes can be pre vented to any memory bank by writing to MBxCR Writes can be prevented and trapped at a resolution of 64 KB by enabling protection for that block in the appropriate WPxR register For further control two of those 64 KB blocks can be further subdivided into 4 KB blocks by selecting them as the write protect seg ments A or B When a write is attempted to a block protected WPxR WPSxLR or WPSxHR a Priority 3 write protect interrupt occurs This feature is automatically enabled by writing to the block protection registers to dis able it set all th
287. fer Priority DMA Transfers at Operation DMA transfers only allowed when Priority 0 gee processor priority at 0 os DMA transfers only allowed when Priority 1 227 processor priority at 0 1 2 DMA transfers only allowed when Priority 2 2 processor priority at 0 1 or 2 Priority 3 DMA transfers allowed at any time Setting an interrupt priority to something greater than the DMA transfer priority will ensure that no DMA activity occurs during that interrupt handler Note that when both an interrupt and a DMA transfer are pending the DMA transfer will be selected for execution first provided its priority is equal or greater than the current processor priority level When a DMA transfer is occurring in the bus sharing mode normal code execution will not occur until the transfer is completed To prevent DMA transfers from excessively blocking interrupts or otherwise inter fering with normal code execution two options can be set in DMTCR First the maximum limit of a DMA transfer can be set from 1 to 64 bytes which sets an upper limit on interrupt latency arising from a DMA transfer Second the minimum number of clocks before the DMA can be active again can be set from 12 to 512 clocks guaranteeing processing time for the application The values providing roughly equal access to the memory bus for both the processor and the DMA is eight bytes per burst and 64 clocks between bursts If you are using
288. ffered until the first match occurs and then loaded into the actual match register If there is no pending match value the new value is loaded immediately Rabbit 6000 User s Manual digi com 169 17 1 1 Block Diagram Timer B perclk 2 perclki16 Interrupt Interrupt TimerA1 Generation Request 11 Parallel Ports D G Reload Registers Rabbit 6000 User s Manual digi com 170 17 1 2 Registers Register Name Mnemonic I O Address R W Reset Timer B Control Status Register TBCSR 0 00 0 0000 Timer Control Register TBCR 0 00 1 000000 Timer MSB 1 Register TBMIR 0 00 2 Timer LSB 1 Register TBLIR 0x00B3 Timer MSB 2 Register TBM2R 0 00 4 Timer LSB 2 Register TBL2R 0 00 5 Timer Step LSB 1 Register TBSLIR 0x00BA Timer Step MSB 1 Register TBSMIR 0x00BB Timer Step LSB 2 Register TBSL2R 0x00BC Timer Step MSB 2 Register TBSM2R 0x00BD Timer Count MSB Register TBCMR 0 00 R XXXXXXXX Timer B Count LSB Register TBCLR 0x00BF R XXXXXXXX 17 2 Dependencies 17 2 1 I O Pins The output of Timer B does not come out directly on any of the I O pins It can be used to control when the ou
289. fined status bytes that are mapped to the data memory of the Flexible Interface Module processor Bytes 0 7 are mapped to data memory addresses 0x18 0x1F and bytes 8 15 are mapped to data memory addresses 0 98 0 9 Rabbit 6000 User s Manual digi com 376 FIMA Code LSB Register FACLR Address 0x6800 through Address OxeBFF Bit s Value Description 7 0 FIMA code bits 7 0 FIMA Code MSB Register 000 Address 0x6C00 through Address Ox6FFF Bit s Value Description 7 6 These bits are unused 5 0 FIMA code bits 13 8 FIMB Data FIFO Register FBDFR Address 0x7000 Bit s Value Description 7 0 write Loads the transmit FIFO buffer read X Returns the contents of the receive FIFO buffer FIMB Rx Status FIFO Register FBRSFR Address 0x7001 Bit s Value Description 7 This bit is reserved and always returns zero 6 0 read X Returns the contents of the receive status FIFO buffer Rabbit 6000 U ser s Manual digi com 377 FIMB FIFO Status Register FBFSR Address 0x7002 Bit s Value Description 7 4 These bits are reserved and always returns zeros 3 0 Rx FIFO not full Read 1 Rx FIFO full only 2 0 Rx FIFO not empty Read only 1 Rx FIFO empty 1 0 Tx FIFO not full Bead 1 Tx FIFO full only 0 0 Tx FIFO not
290. g for 1 rising edge to rising edge one clock minimum 1 Extended timing for OE1 one half clock earlier than normal 2 0 Normal timing for rising edge to rising edge one clock minimum 1 Extended timing for OEO one half clock earlier than normal 1 0 Normal timing for WEI rising edge to falling edge one and one half clocks minimum 1 Extended timing for WEI falling edge to falling edge two clocks minimum 0 0 Normal timing for WEO rising edge to falling edge one and one half clocks minimum 1 Extended timing for WEO falling edge to falling edge two clocks minimum Rabbit 6000 User s Manual digi com 74 Memory Alternate Conirol Register MACR Address 0x001D Bit s Value Description 7 0 Normal 8 bit operation for CS3 Use MBxCR for wait states This bit is used only when external memory is present Normal 16 bit operation for CS3 Use MBxCR for wait states When 1 stand alone operation is selected by strapping a pin this bit is forced high 6 This bit is reserved and must not be used 5 4 00 Normal 8 bit operation for CS2 01 Page Mode 8 bit operation for CS2 10 Normal 16 bit operation for CS2 11 Page Mode 16 bit operation for CS2 3 2 00 Normal 8 bit operation for CS1 01 Page Mode 8 bit operation for CS1 10 Normal 16 bit operation for CS1 11 Page Mode 16 bit operation for CS1 1 0 00 Normal 8 bit operation for
291. gi com 360 32 1 1 Block Diagram Breakpoint x Rogues Address Interrupt Interrupt us Compare Generation Request Code Execution Data Read Match Type Address Data Write Address Enable Mask Rabbit 6000 User s Manual digi com 361 32 1 2 Registers Register Name Mnemonic I O Address R W Reset Breakpoint Debug Control Register BDCR 0 001 00000000 Breakpoint 0 Control Register BOCR 0x030B R W 00000000 Breakpoint 1 Control Register BICR 0x031B 00000000 Breakpoint 2 Control Register B2CR 0x032B 00000000 Breakpoint 3 Control Register B3CR 0x033B R W 00000000 Breakpoint 4 Control Register B4CR 0x034B 00000000 Breakpoint 5 Control Register BSCR 0 035 00000000 Breakpoint 6 Control Register B6CR 0 036 00000000 Breakpoint x Address 0 Register BxAOR 0x03xC R W 00000000 Breakpoint x Address 1 Register BxAIR 0x03xD R W 00000000 Breakpoint x Address 2 Register BxA2R 0x03xE R W 00000000 Breakpoint x Mask 0 Register BxMOR 0 03 8 00000000 Breakpoint x Mask 1 Register BxMIR 0 03 9 00000000 Breakpoint x Mask 2 Register BxM2R 0 03 00000000 Rabbit 6000 User s Manual digi com 362 32 2 Dependencies 32 2 1 I O Pins There are no I O pins associated with breakpoints 32 2 2 Clocks There are no clocks associated with breakpoints 32 2 3 Other Registers There are no o
292. gister ENPR Address 0x0430 Bit s Value Description 7 0 Disable Network Port C the Wi Fi port 1 Enable Network Port C the Wi Fi port 6 0 Disable Network Port B the 10 100Base T Ethernet port 1 Enable Network Port B the 10 100Base T Ethernet port 5 0 Disable Network Port D the USB port 1 Enable Network Port D the USB port 4 0 Internal 10 100 PHY This bit is ignored unless bit 6 of this register is also set at which point the internal PHY is powered up 1 External 10 100 PHY 3 2 00 Network Port D interrupts are disabled 01 Network Port D interrupts use Interrupt Priority 1 10 Network Port D interrupts use Interrupt Priority 2 11 Network Port D interrupts use Interrupt Priority 3 1 0 00 Network Port C interrupts are disabled 01 Network Port interrupts use Interrupt Priority 1 10 Network Port C interrupts use Interrupt Priority 2 11 Network Port C interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 308 26 802 11A B G WIRELESS 26 1 Overview Network Port C implements an 802 11a b g compatible wireless LAN radio It consists of a baseband mod ule dedicated processor high speed A D and D A converters and an interface for one of several external radio frequency RF transceivers The external transceiver is responsible for the up conversion and down conversion of the RF signal The receiver and transmitter each have a dedicated 2048 byte FIFO Communication with the ext
293. gnificant byte of a 16 bit address the second byte is the least significant byte of the address and the third byte is the data to be written If the uppermost bit of the address is 1 then the address is assumed to be an internal register address instead of a memory address and the data are written to the appropriate register instead For example a triplet of 0x04 0x34 0x5A will write Ox5A to logical memory address 0x0434 while a triplet of 0x80 0x34 0x5A will write 0x5A to processor register 0x34 Processor registers with addresses above OxFF are not accessible in the bootstrap mode The boot ROM program waits for data to be available each byte received automatically resets the watch dog timer with a 2 second timeout Bytes must be received quickly enough to prevent timeout or the watchdog must be disabled The device checks the state of the SMODE pins each time it jumps back to the start of the ROM program and responds according to the current state In addition by setting bit 7 of the Slave Port Control Register SPCR high the processor can be told to ignore the state of the SMODE pins and continue normal opera tion Rabbit 6000 User s Manual digi com 39 Note that the processor can be told to re enter bootstrap mode at any time by setting bit 7 of SPCR low once this occurs and the least significant four bits of the current PC address are zero the processor will sample the state of the SMODE pins and respond accordingly Th
294. he PWBPR PWBPR is automatically updated to the next PWM register address in the sequence PWM Block Pointer Register PWBPR Address 0x00E9 Bit s Value Description 7 3 These bits are reserved 2 0 Three least significant bits of the PWM register address for indirect Rabbit 6000 User s Manual digi com 347 31 EXTERNAL I O CONTROL 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 There are three dedicated signal pins IORD IOWR BUFEN that toggle for all external I O accesses and eight I O strobes that can be associated with this external I O space and directed out on Parallel Ports C H In addition a handshaking signal input can be enabled on any Parallel Port E pin and can be used to pause an external I O transaction until the external device is ready to complete the transaction A timeout period can be defined to ensure that the processor is not held indefinitely by a misbehaving external device The drive strength and slew rate can be controlled for the IOWR and BUFEN pins In addition a 75 kO pullup or pulldown resistor can be enabled for the pins 31 1 1 External I O Bus The Rabbit 6000 can enable a separate external I O bus for external devices to keep bus loading on the memor
295. he code values are user defined FIMB Master Mode Register FBMMR Address 0x7005 Bit s Value Description 7 0 These bits are reserved and should always be written with zeros FIMB Interrupt Control Register FBICR Address 0x7006 Bit s Value Description 7 0 main processor has read write access to the Flexible Interface Module program memory The Flexible Interface Module processor has read access from the 1 Flexible Interface Module program memory 6 2 These bits are reserved and should always be written with zeros 1 0 00 Flexible Interface Module interrupt disabled 01 Flexible Interface Module interrupt uses priority 1 10 Flexible Interface Module interrupt uses priority 2 11 Flexible Interface Module interrupt uses priority 3 Rabbit 6000 User s Manual digi com 379 FIMB Control Byte x Register FBCBOR Address 0x7007 FBCB1R Address 0x7008 FBCB2R Address 0x7009 FBCB3R Address 0x700A FBCB4R Address 0x700B FBCB5R Address 0x700C FBCB6R Address 0x700D FBCB7R Address 0x700E FBCB8R Address 0x700F FBCB9R Address 0x7010 FBCB10R Address 0x7011 FBCB11R Address 0x7012 FBCB12R Address 0x7013 FBCB13R Address 0x7014 FBCB14R Address 0x7015 FBCB15R Address 0x7016 Bit s Value Description User defined control bytes that are mapped to the data memory of the Flexible Interface Module proces
296. he internal PHY is powered up 1 External 10 100 PHY 3 2 00 Network Port D interrupts are disabled 01 Network Port D interrupts use Interrupt Priority 1 10 Network Port D interrupts use Interrupt Priority 2 11 Network Port D interrupts use Interrupt Priority 3 1 0 00 Network Port C interrupts are disabled 01 Network Port interrupts use Interrupt Priority 1 10 Network Port C interrupts use Interrupt Priority 2 11 Network Port C interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 34 3 RESET AND BOOTSTRAP 3 1 Overview The Rabbit 6000 s RESET pin initializes everything in the processor except for the real time clock regis ters the contents of the battery backed onchip encryption RAM and the 32K battery backed SRAM If a write cycle is in progress it waits until the write cycle is completed to avoid potential memory corruption 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 CSO 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 In this mode bytes can be written to internal registers to set up the Rabbit 6000 for a particular configuration or to memory to load a program The processor can begin normal operat
297. hen the count matches the value in the corresponding set register and is cleared when the count matches the value programmed in the corresponding reset register This allows the creation of quadrature signals or three phase signals with a variable frequency for motor control applications The values in all of the Timer C registers are transferred to holding registers for use during the count cycle when the counter rolls over allowing the control registers to be reloaded at any time during the count cycle Timer C can generate an interrupt when the count limit value is reached A separate Timer C Block Access Register TCBAR and Timer C Block Pointer Register TCBPR are available to allow DMA control of Timer C The pointer register contains the address of the Timer C regis ter to be accessed via the access register Each read or write of the access register automatically increments the pointer register through the sequence shown below Note that only the lower five bits of the pointer reg ister actually change This allows the DMA to write to a fixed internal I O location but still program all of the relevant timer registers The pointer register can be written and read if necessary Normally the pointer register TCBPR is initialized to 0x02 the offset of the Timer C Divider Low Register and the DMA then transfers blocks of 18 bytes to completely reprogram Timer C 0 502 gt 0x503 gt 0 508 gt 0x509 gt 0 50 gt Ox50B gt 0 50
298. hey should remain active but are not being directly used The Ethernet and Wi Fi peripherals in particular can draw a significant amount of current when powered as shown in Table 36 1 Exercise care that they are only enabled when being used Table 36 1 Current Draw by Selected Rabbit 6000 Peripherals Peripheral 13 mA 1 2 V Ethernet 196 mA 3 3 V 54 mA 1 2 V Wi Fi 9 mA Q 3 3 V 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 If the clock doubler is enabled the options also include twice the main oscillator frequency and the main oscillator divided by 3 In addition the 32 kHz clock can be used for the processor and peripheral clocks the 32 kHz clock can also be divided by 2 4 8 or 16 which provides dramatically lower power consumption Rabbit 6000 User s Manual digi com 405 Table 36 2 lists the options for the clock modes and the processor clock frequency Table 36 2 Clock Modes Main Oscillator Clock 32 kHz Processor Clock GCSR Seiting Doubler Divider Frequency 2 x Input frequency Full On main oscillator or PLL Full Off Input frequency Divided by 2 On Divided by 2 Off N A Input frequency 2 Divid
299. i com 195 Serial Port x Control Register SACR Address 0x00C4 SBCR Address 0x00D4 SCCR Address 0x00E4 SDCR Address 0 00 4 Bit s Value Description 7 6 00 No operation These bits are ignored in the asynchronous mode 01 the clocked serial mode start a byte receive operation 10 In the clocked serial mode start a byte transmit operation In the clocked serial mode start a byte transmit operation and byte receive operation simultaneously 5 4 00 Parallel Port C is used for input 01 Parallel Port D is used for input 10 Parallel Port E is used for input 11 Disable the receiver input 3 2 00 Asynchronous mode with 8 bits per character Asynchronous mode with 7 bits per character In this mode the most 01 significant bit of a byte is ignored for transmit and is always zero in receive data 10 Clocked serial mode with external clock 11 Clocked serial mode with internal clock 1 0 00 The serial port interrupt is disabled 01 The serial port uses Interrupt Priority 1 10 The serial port uses Interrupt Priority 2 11 The serial port uses Interrupt Priority 3 Rabbit 6000 User s Manual digi com 196 Serial Port x Extended Register SAER Address 0x00C5 SBER Address 0x00D5 Asynchronous Mode Only SCER Address 0x00E5 SDER Address 0x00F5 Bit s V
300. ial Port G Bus Monitor 1 Register 401 Serial Port G Bus Monitor 2 Register 401 Serial Port Bus Monitor 3 Register 401 Serial Port Clock Division 0 Register 398 Serial Port Clock Division 1 Register 399 Serial Port Clock Division 2 Register 399 Serial Port Clock Division 3 Register 399 Serial Port Control 0 Register 395 Serial Port Control 1 Register 396 Serial Port Control 2 Register 396 Serial Port Control 3 Register 396 Serial Port Data Register 399 Serial Port Main Control Register 402 Serial Port Slave Address 0 Register 399 Serial Port Slave Address 1 Register 399 Serial Port Slave Address 2 Register 400 Serial Port Slave Address 3 Register 400 Serial Port Status 0 Register 397 Serial Port Status 1 Register 398 Serial Port Status 2 Register 398 Serial Port Status 3 Register 398 Serial Port Timing Control 0 Register 400 Serial Port Timing Control 1 Register 400 Serial Port Timing Control 2 Register 400 Serial Port Timing Control 3 Register 400 Rabbit 6000 User s Manual rabbit com 454 input capture channels
301. ial port is available in its Serial Port Status Register SxSR and contains informa tion on whether a received byte is available the receive buffer was overrun a parity error was received the transmit buffer is empty or busy sending a byte and the state of the ninth data bit whether it is an address bit or a stop bit 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 CLK Mode 00 CLK Mode 01 CLK Mode 10 CLK Mode 11 Jer a pu Joo 1 Ip 3 B s s zz B s s zz a 2 2 5 s fs B s 5 LEE Joo 44 Tx Rx T LE 7 Tx bit reversed Rx bit reversed ps 02 Figure 19 1 Serial Ports D Operation Clocked Serial Mode Rabbit 6000 User s Manual digi com 184 In the asynchronous mode IrDA compliant RZI encoding can be enabled to reduce the bit widths to 3 16 the normal width 1 8 the normal width if the serial data clock is 8x instead of 16x which allows the serial port signal to be connected directly to an IrDA transceiver It is possible to select the same pin on Parallel Port C for both transmit and receive operation This allows glueless support for single wire serial protocols It is possible to synchronize a clocked serial
302. ined up within one count of the divide by 16 counter The regions that adjust the count by two allow the DPLL to synchronize faster to the data stream when starting up With biphase level encoding there is a guaranteed clock transition at the center of every bit cell and optional data transitions occur at the bit cell boundaries The DPLL only uses the clock transitions to track the bit cell boundaries by ignoring all transitions occurring outside a window around the center of the bit cell This window is half a bit cell wide Additionally because the clock transitions are guaranteed the DPLL requires that they always be present If no transition is found in the window around the center of the bit cell for two successive bit cells the DPLL is not in lock and immediately enters the search mode The search mode assumes that the next transition seen is a clock transition and immediately synchronizes to this transition No clock output is pro vided to the receiver during the search operation 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 Rabbit 6000 User s Manual digi com 209 Biphase mark encoding and biphase space encoding are identical as far as the DPLL is con cerned and are similar to biphase level encoding The primary difference is the placement of the clock and data transitions With these enc
303. ing PADR Note that Parallel Port A is not available for general purpose I O while the slave port or the external I O bus is selected or when it is being used by one of the Flexible Interface Modules Selecting the slave port or external I O bus options for Parallel Port A affects Parallel Port B as well because Parallel Port B is then used for address and control signals 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 Rabbit 6000 User s Manual digi com 97 8 4 Register Descriptions Parallel Port A Data Register PADR Address 0x0030 Bit s Value Description 7 0 Read The current state of Parallel Port A pins PA7 PAO is reported The Parallel Port A buffer is written with this value for transfer to the Write Parallel Port A output register on the next rising edge of the peripheral clock Parallel Port Ax Control Register PAOCR Address 0x0400 PA1CR Address 0x0401 PA2CR Address 0x0402 PA3CR Address 0x0403 PA4CR Address 0x0404 PA5CR Address 0x0405 PA6CR Address 0x0406 PA7CR Address 0x0407 Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 3 2
304. ing or exiting the disabled state The operation of the counter as a function of the I and Q inputs is shown below INPUT Q INPUT COUNTER FF 22200000000000000 10 BIT COUNTE eae ee 2 4 Rabbit 6000 User s Manual digi com 333 The Quadrature Decoders are clocked by the output of Timer A10 which must be fast enough to sample the inputs properly Both the I and Q inputs go through a digital filter that rejects pulses shorter than two clock periods wide so that highest detectable input frequency is one fourth of the frequency set by Timer A10 In addition the clock rate must be high enough that transitions on the I and Q inputs are sampled in different clock cycles Input capture may be used to measure the pulse width on the I inputs because they come from the odd numbered port bits The operation of the digital filter is shown below periclock U LJ LI LI LIU L TIMER A10 REJECTED ACCEPTED The Quadrature Decoder generates an interrupt when the counter increments from 0xFF 0x3FF in 10 bit mode to 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 PERI CLOCK TIMER A10 Q INPUT E el COUNTER INTERRUPT Rabbit 6000 User s Manual digi co
305. ing to each data input or data output register to indicate the empty or full status of the data register Data registers are marked full when written by the source side of the interface and are marked empty when read by the destination side of the interface The hardware interface to the external master consists of an 8 bit bidirectional data bus with a read strobe write strobe and chip select There are two address lines that select one of the three data registers or the status register Table 21 1 Slave Port Addresses Slave Port Address Slave Port Register 00 Data Register 0 01 Data Register 1 10 Data Register 2 11 Status Register A slave attention signal is asserted when the slave writes to its SPDOR and can be deasserted by the master by performing a dummy write to the status register This signal can be used to interrupt the master to indi cate that the master needs to read data from the slave The slave port interrupt is asserted when the master writes to SPDOR The slave clears this interrupt condi tion by writing to the status register 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 Rabbit 6000 User s Manual digi com 216 21 1 1 Block Diagram
306. ins 127 then 128 pulses enter on the left before a pulse exits on the right see Figure 16 1 If the reload register contains zero then each pulse on the left results in a pulse on the right that is there is division by one The reload register can contain any number in the range from 0 to 255 The counter divides by n 1 8 bit Reload Register LOAD 8 bit Down Counter Input Clock Count Value 2 1 0 N N 1 Figure 16 1 Reload Register Operation The output pulses are always one clock wide Clocking of the timers takes place on the negative edge of these pulses When the counter reaches zero the reload register is loaded into the counter on the next input pulse instead of a count being performed The terminal count condition for Timers A1 A7 is reported in status register and can be programmed to generate an interrupt Six of these seven timers A2 A7 have the option of being cascaded from Timer A1 but the primary clock for all of the timers is the peripheral clock either directly or divided by TAPR the default 2 Timers A2 A7 be used to generate baud rates for Serial Ports or they can be used as general pur pose timers if the dedicated baud rate timers on the Rabbit 6000 serial ports used Timers 8 A9 10 and A11 serve as prescalers which determine the resolution of the input capture PWM quadrature decoder and Timers B C peripherals respectively The peripherals clocked by th
307. ion of the 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 When the timeout occurs the transaction ends and a status bit is set This bit must be checked by the pro gram attempting the write no interrupt is generated The I O handshake signal is sampled at the end of the first wait state Tw When the handshake signal is disabled the transition will start at the beginning of the Tw phase and continue to completion ADDR valid WRITEDATA I 3 WRITE STROBE j NM READ DATA 7 valid al READ STROBE CHIPSELECTSTROBE HANDSHAKE i ACTIVE LOW lll EXTERNAL I O HANDSHAKE Figure 31 2 External I O Handshake Timing Diagram Rabbit 6000 User s Manual digi com 350 31 1 4 Block Diagram External I O Control Address and Data Memory Bus or External I O Parallel Ports A B D IOE Acces Bank plus Parallel Port H Select for 16 bit bus Handshake Control di iod ae Parallel Port E Pin Handshake Timeout 10 Bank x Bank x Output JL Control Select IBxCR PyFR PyAHR Bank x Extended Control PyALR Rabbit 6000 User s Manual digi com 351 31 1 5
308. ion once the bootstrap operation is completed Rabbit 6000 User s Manual digi com 35 3 1 1 Block Diagram Reset IRESET Master Reset Rabbit 6000 Bootstrap Asynch Serial Bootstrap SMODEO Bootstrap Serial Flash Bootstrap Selecti ida Slave Port Bootstrap Normal Operation 50 external on startup SYSCFGO ICS3 internal on startup 3 1 2 Registers Register Name Mnemonic I O Address R W Reset Slave Port Control Register SPCR 0 0024 0xx00000 Rabbit 6000 User s Manual digi com 3 2 Dependencies 3 2 1 I O Pins SMODEO SMODE1 When the Rabbit 6000 is first powered up or when it is reset the state of the SMODEO and 5 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 CSO or the internal SRAM CS3 RESET Pulling the RESET pin low will initialize everything in the Rabbit 6000 except for the real time clock registers the 32K battery backed RAM and the onchip encryption RAM CS1 During reset the impedance of the CS1 pin is high and all other memory and I O control signals are held high The special behavior of CS1 allows an external RAM to be powered by the same source as the VBATIO pin which powers CS1 In this case a pullup resistor is required on CS1 to keep the RAM deselected during powerdown RESOUT The RESOUT
309. ionality of the internal SRAM allows both DMA and code execution to occur simultaneously as shown in Figure 24 1 This mode is different from the DMA func tionality in previous processors and is enabled by default whenever possible burst DMA Transfer Higher Priority Initial Begins DMA Request DMA Transfer Complete CPU active at all times Figure 24 1 Bus Interleaving Mode The other mode is used whenever an external device is used for the source or destination and matches the DMA behavior of the Rabbit 4000 and 5000 processors In this bus sharing mode the memory bus alter nates between DMA and processor use as shown in Figure 24 2 When DMA is active the CPU is not processing instructions and vice versa Rabbit 6000 User s Manual digi com 249 DMA Reg 2 burst burst DMA Req 1 burst burst burst DMA Transfer Higher Priority Initial Begins DMA Request DMA Transfer Complete CPU CPU CPU CPU CPU CPU CPU Figure 24 2 Bus Sharing Mode Memory to memory transfers proceed at the maximum transfer rate unless they are gated by an external request signal or the internal timed request Transfers to or from a number of internal I O addresses are controlled by transfer request signals These transfer request signals are connected automatically as a func tion of the internal I O address loaded into the DMA channel Note that if both the source and th
310. is concerned A table of one set of unique multicast addresses corresponding to each filter bit is shown below The table shows the least significant byte of the multicast address the remaining five bytes of the address are all zeros for this set of multicast addresses Register Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 NBMF7R 0 17 0x0B 0x05 0 19 0 85 0 99 0 97 Ox8B NBMF6R OxD9 0 5 OxCB OxD7 Ox4B 0x57 0x59 0x45 NBMF5R OxCF OxD3 OxDD OxCl 0x5D 0x41 Ox4F 0x53 NBMF4R 0 01 OxID 0x13 OxOF 0x93 Ox8F 0 81 0x9D NBMF3R Ox5F 0x43 0 4 0 51 OxCD OxD1 OxDF OxC3 NBMF2R 0x91 Ox8D 0x83 Ox9F 0x03 Ox1F 0 11 0x0D NBMFIR 0x87 0x9B 0x95 0x89 0x15 0x09 0x07 Ox1B NBMFOR 0x49 0x55 0 58 0 47 OxDB 0 7 0 9 OxD5 Rabbit 6000 User s Manual digi com 294 25 4 Register Descriptions Network Port B Data Register NBDR Address 0x0200 Bit s Value Description 7 0 Read Returns the contents of the receive buffer This register is not normally accessed by the processor but is accessed by the DMA channels Write Loads the transmit buffer with a data byte for transmission Network Port B Last Data Register NBLDR Address 0x0201 Bit s Value Description 7 0 Read Returns the contents of the receive buffer This register is not normally accesse
311. is feature allows in line downloading from the selected bootstrap port once the download is complete bit 7 of SPCR can be set high and the processor will continue operating from where it left off As a security feature any attempt to enter the bootstrap mode from either the SMODE pins or by writing to bit 7 of the SPCR will erase the data stored in the onchip encryption RAM This prevents loading a small program in memory to read out the data 3 3 1 Asynchronous Serial Bootstrap When the asynchronous serial bootstrap mode is selected by the SMODE pins the Rabbit 6000 will begin accepting triplets at 2400 bps on Serial Port A The baud rate is generated from the 32 kHz clock input so a 32 kHz clock is required for this mode 3 3 2 Serial Flash Bootstrap When the serial flash bootstrap mode is selected by the SMODE pins the Rabbit 6000 will enable the SPI serial flash bootstrap port on pins PD4 PD5 PD6 and PBO the pins functionality is listed in Table 3 3 below Note that these pins can be used for Serial Port B in normal operation so the serial flash may be accessed with that serial port during normal operation Table 3 3 Serial Flash Bootstrap Pin Functions Pin SPI Signal Operation PD4 MOSI Rabbit data transmit to serial flash PD5 MISO Rabbit data receive from serial flash PD6 CS Chip select to serial flash PBO SCK Serial clock output to serial flash The Rabbit 6000 divides the main cloc
312. itten with zero 5 0 Enable A16 and bank select address MSB inversion independent of instruction data Enable A16 and bank select address MSB inversion for data accesses 1 only This enables the instruction data split 4 0 Normal CS1 operation Force CS1 always active This will not cause any conflicts as long as the 1 memory using CS1 does not also share an output enable or write enable with another memory 3 0 Normal operation 1 For a data segment access invert bank select address MSB before MBxCR decision 2 0 Normal operation 1 For a data segment access invert 16 1 0 Normal operation 1 For a root segment access invert bank select address before MBxCR decision 0 0 Normal operation 1 For a root segment access invert A16 Rabbit 6000 User s Manual digi com 68 Stack Segment Register STACKSEG Address 0x0011 Bit s Value Description 7 0 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 7 4 lt Addr 15 12 lt OxE Stack Segment Low Register STACKSEGL Address 0x001A Bit s Value Description 7 0 Read current contents of this register are reported Write Eight LSBs of physical address offset to use if SEGSIZ 7 4 lt Addr 15 12 lt OxE Stack Segment High Register STACKS
313. k 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 industry standard command that enables continuous read mode starting at serial flash address 0 0 Figure 3 1 provides a sample timing diagram The Rabbit 6000 will then read triplets out of the serial flash until the bootstrap mode is exited CE MODE3 01234567 8 15 16 23 24 31 32 39 40 47 48 55 56 63 64 70 HIGH IMPEDANCE Figure 3 1 SPI Timing Diagram for Serial Flash Bootstrap Mode Rabbit 6000 User s Manual digi com 40 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 3 4 Register Descriptions Slave Port Control Register SPCR Address 0x0024 Bit s Value Description 7 0 Program fetch as a function of the SMODE pins 1 Ignore the SMODE pins program fetch function 6 5 Read These bits report the state of the SMODE pins Write These bits are ignored and should be written with zero 4 2 000 Disable the slave port Parallel Port A is a byte wide input port 001 Disable the slave port Parallel Port A is a byte wide output port 010 Enable
314. ks a SS a Sa 185 SMODE pin settings 39 dependencies a 188 SPCR INLELLUP 189 Parallel Port eene 94 Operation 190 specifications emen nennen 12 416 asynchronous mode 190 AC characteristics 418 cjockediserialmode 222222 184 191 analog components sese 228 240 QVePVISW ya o EPOR bays 184 BGA package 4 124 429 PINUS a aaa aqna laqasqa akaqa MR 188 dimensions usa register descriptions 193 land pattern 431 181 18 55 55 187 429 430 SPFclack modes a 184 clock speeds temen 425 Rabbit 6000 User s Manual rabbit com 457 recommended clock memory configurations example ISR dee eet 172 425 poca 172 DC characteristics 2212 416 OVELVICW a 169 memory access times 2222 419 PWM operation 2 169 external I O reads 2 2 2 2 422 register descriptions 173 external I O writes a 422 ITA Im 171 memory reads reete 419 Timer ceo step ttti te cte cepe tuns 176 memory Writes 2 419 block diagram
315. l 392 logical memory space 55 input capture channels 325 326 mapping physical memory space 55 example ISR sccsscciesescesscsepsecesesGecevecsensemevsonscees 326 MMU operation 62 internal interrupt vector table 84 scio 61 interrupt priorities 20 86 16 bit and page modes 64 memory management a 60 instruction and data space 66 Network Port B 291 293 memory protection 67 Network Port C esse 316 61 usc m 84 read and write transactions 64 Parallel Port D Su n l saan 117 stack protection 2 67 Rabbit 6000 User s Manual rabbit com 448 OVELVIEW REED ete 54 register descriptions 21 104 physical and logical memory mapping 56 Iur c M 102 register descriptions sse 68 slave port enabled esses 100 iur m 58 61 SPCR setup 100 memory protection 67 Parallel Port C iie tenete
316. l Register PECR 0x0074 R W xx00xx00 Port E Function Register PEFR 0x0075 00000000 Port E Drive Control Register PEDCR 0x0076 00000000 Port Data Direction Register PEDDR 0 0077 00000000 Port E Bit x Register PEBxR 0x0078 x w XXXXXXXX Port Ex Control Register PExCR 0x04F0 x W xxx00000 Rabbit 6000 User s Manual digi com 128 12 2 Dependencies 12 2 1 I O Pins Parallel Port E uses the pins PEO through PE7 These pins can be used individually as data inputs or out puts as serial port transmit and receive for Serial Ports E and F as clocks for Serial Ports C F as data and clocks for Serial Port G as external I O strobes as outputs for the PWM and Timer C peripherals or as power control signals for the USB peripheral The input capture peripheral can also watch pins PE7 PES and PE1 There is also an option to provide the slave port chip select on 7 All pins are set as inputs on startup The individual bits can be set to be open drain via PEDCR Drive strength slew rate and the pullup down resistor status are selectable via PExCR See the associated peripheral chapters for details on how they use Parallel Port E 12 2 2 Clocks All outputs on Parallel Port E are clocked by the peripheral clock unless changed in PECR where the option of updating the Parallel Port E pins can be synchronized to the output of Timer Al Timer B1 or Timer B2 12 2 3 Other Register
317. l Status Register 173 HDLC data encoding 207 Timer Count LSB Register 175 HDLC rts 200 Timer B Count LSB x Register 174 1914 8 207 Timer Count MSB Register 175 IDierr pls 1 iter rne iret 204 Timer B Count MSB x Register 174 Operation 205 Timer B Step LSB x Register 174 asynchronous mode 205 Timer B Step MSB x Register 174 HPLC mode eer 205 Timer 25 tetro PER EH Ren IEEE 178 OVELVICW A 200 Timer C Block Access Register 183 pin use oun ge 203 Timer C Block Pointer Register 183 register descriptions 2212222 210 Timer C Control Register 181 TegIStets iiie e rte ee dev ete ree 202 Timer C Control Status Register 181 SXSR isse eio tier 200 Timer C Divider High Register 181 22522 100 216 Timer C Divider Low Register 181 addresses aoreet 216 Timer Reset x High Register 182 block diagram 2 eee bett 217 Timer C Reset x Low Register 182 bootstrap processor 220
318. l addresses The 64 KB logical memory space limitation can also be expanded by using the separate instruction and data space mode When this mode is enabled address bit A16 is inverted for all data accesses in the root and or data segments and the most significant bit of the bank select bits is inverted for all data accesses in the root and or data segments before bank selection physical device occurs These two features allow both code and data to access separate 64 KB logical spaces instead of sharing a single space It is possible to protect memory in the Rabbit 6000 at three different levels each of the memory banks can be made read only physical memory can be write protected in 64 KB blocks and two of those 64 KB blocks can be protected with a granularity of 4 KB A Priority 3 interrupt will occur if a write is attempted in one of the protected 64 KB or 4 KB blocks In addition it is possible to place limits around the code exe cution stack and generate an interrupt if a stack related write occurs within 16 bytes of those limits The drive strength and slew rate can be controlled for the address bus data bus and memory strobes other than CS1 which has fixed functionality In addition a 75 pullup or pulldown resistor can be enabled on the data bus Rabbit 6000 User s Manual digi com 56 5 1 1 Block Diagram Interrupt Interrupt Handler Request Physical ICSx Logical or Address IWEx i ry Memory Bank ypas Control IOE
319. l digi com 203 20 2 4 Interrupts In the asynchronous mode a serial port interrupt will be generated whenever any of the following occurs e A byte is available in the receive buffer A byte is moved from the transmit buffer to the transmitter The transmitter becomes idle These occurrences correspond to bits 7 3 and 2 of the Serial Port Status Registers In the HDLC mode interrupts are also generated by the reception of an end of frame with abort valid CRC or CRC error at the end of a transmission of a CRC by an abort sequence or by a closing flag The serial port interrupt vectors are located in the IIR as follows Serial Port E at offset 0x1C0 Serial Port F at offset 0 100 Each of them can be set as Priority 1 2 or 3 in SxCR where x is E F for the two serial ports Rabbit 6000 User s Manual digi com 204 20 3 Operation TIP Remember to set up the serial port bits before commanding the serial port to send or receive any data 20 3 1 Asynchronous Mode The steps to set up Serial Ports E F for asynchronous operation are identical to those described in Section 19 3 1 to set up Serial Ports A D 20 3 2 HDLC Mode The following steps explain how to set up Serial Ports E F for the HDLC mode 1 2 Write the interrupt vector for the interrupt service routine to the internal interrupt table Set up the desired data transmit and clock pins by writing to the appropriate parallel port
320. l ports The Rabbit 6000 also offers many specialized peripherals Two input capture channels each have a 16 bit counter clocked by the output of an internal timer that can be used to capture and measure pulses These measurements can be extended to a variety of functions such as measuring pulse widths or for baud rate auto detection Two Quadrature Decoder channels each have two inputs as well as an 8 bit or 10 bit up down counter Each Quadrature Decoder channel provides a direct interface to quadrature encoder units Four independent pulse width modulator PWM outputs each based on a 1024 pulse frame are driven by the output of a programmable internal timer 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 Rabbit 6000 User s Manual digi com 9 external interrupt vectors two of which can each multiplex inputs from up to three external pins A new addition to the Rabbit 6000 is a fully featured re 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 An interrupt can be generated or an output pin can be updated when the counter reaches a match value and
321. land pattern register descriptions sese 328 BGA package Sus SSS SSES Pl fegistefsS 555520 324 low power operation cesset eerie start and stop events 2 2222 322 clock rales interrupt priorities sese 86 clock modes pus irato 83 handling E 405 e NR oe stent ects 363 operation 405 example ISR s 364 overview Em 403 DMA channels 251 255 257 register descriptions 413 example ISR 257 registers es 404 external interrupt vector table 85 self timed chip selects 412 external interrupts 87 90 short chip selects 22242 24 407 block diagram see 88 M ClOCKS 4 etiem eto 90 dependencies nene Deinen 90 memory example SR assay terret 91 read and write cycles no wait states 421 interrupt vectors 00 0 10 90 memory management 54 Operation M 91 block diagram 2 5 57 register descriptions 2222 92 sesso 60 Iac M 89 dependencies Quya asian asua 60 Flexible Interface Modules 371 372 Iu qq n 60 rc periphera
322. lative address 0x4000 0x4FFF in WP Segment x 1 Enable 4 KB write protect for relative address 0x4000 0x4FFF in Segment x 3 0 Disable 4 KB write protect for relative address 0x3000 0x3FFF in WP Segment x 1 Enable 4 KB write protect for relative address 3000 0 in WP Segment x 2 0 Disable 4 KB write protect for relative address 0x2000 0x2FFF WP Segment x 1 Enable 4 KB write protect for relative address 0x2000 0x2FFF in WP Segment x 1 0 Disable 4 KB write protect for relative address 0x1000 0x in WP Segment x l Enable 4 KB write protect for relative address 0x1000 0x1FFF in WP Segment x 0 0 Disable 4 KB write protect for relative address 0x0000 0x0FFF in WP Segment x 1 Enable 4 KB write protect for relative address 0xOO00 OxOFFF in WP Segment x 78 Write Protect Segment x High Register WPSAHR Address 0x0482 WPSBHR Address 0x0486 Bit s Value Description 7 0 Disable 4 KB write protect for relative address OxFOOO OxFFFF WP Segment x 1 Enable 4 KB write protect for relative address OxFOOO OxFFFF in WP Segment x 6 0 Disable 4 KB write protect for relative address 0 000 in WP Segment x 1 Enable 4 KB write protect for relative address 000 in WP Segment x 5 0 Disable 4 KB write protect for relative address OxXD000 0xDFFF in WP Segment x 1 Enable 4 KB write protec
323. led for any external chip select and can be used with either 8 bit or 16 bit memories connected to these chip selects Page Mode memories provide for a faster access time if the requested data are in the same page as the previous data 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 These wait state options are also controlled in the ACSxCR In Page Mode the chip select and OE remain active from one page access to the next and only the three or four least significant bits of the address change to request the new data This obviously interferes with a number of the power saving modes and will take precedence over them for chip select accesses as appro priate The power saving modes will still apply to the other chip select and output enable signals The logic recognizes which OE is being used with each chip select in the Page Mode As mentioned previously the ACSxCR registers each contain three fields to control the generation of wait states in the advanced bus modes These settings are in addition to the wait state setting in MBxCR when an advanced bus mode is enabled When the 16 bit bus is enabled one to fifteen automatic wait states for memory read bus cycles can be enabled in addition to the zero to four wait states in MBxCR This setting is also used for the first access
324. lel port s alternate output registers The individual bits of Parallel Port F are available to FIMA and the individual bits of Parallel Port G are available to FIMB The Flexible Interface Modules also have the capability of overriding the normal functionality of any other parallel port via the Port Override Control Register This overrides control of the entire parallel port how ever meaning that any other functionality on that port is no longer available The use of Rabbit parallel ports in an override mode is very function specific and is used predominantly for parallel bus applications The use and restrictions of the override mode are not covered in this document 33 3 2 Clocks 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 3 3 Other Registers Register Function MSCR Select the Flexible Interface Module clocks Override parallel port registers for Flexible POLK Interface Module operation 33 3 4 Interrupts Each Flexible Interface Module can generate an interrupt to the Rabbit 6000 as well as receive an inter rupt from the Rabbit 6000 In each case a 7 bit value can be passed effectively providing 127 different interrupts without requiring additional information to be passed sending 0 clears the interrupt request
325. lled A sample packet transmit interrupt handler is shown below network_isr push af 101 14 NBCSR read the interrupt status push af save status byte for later bit 4 a did transmit error occur jp nz handle tx err bit 4 a did transmit pause occur jp nz handle pause err done pop af ipres ret handle tx err ioi ld a NBTSR get transmitter status check why error occurred and respond accordingly pop af pop af ipres ret handle pause err handle transmit pause pop af ipres ret 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 ret Rabbit 6000 User s Manual digi com 293 25 3 5 Multicast Addressing A physical address match requires that the received frame address is a physical address that matches every bit of the programmed receive address A broadcast address match requires that all 48 bits of the received frame address be ones A multicast address match requires the received frame address to be a multicast address LSB of the address is one and a match in the multicast address filter The multicast address filter uses the six most significant bits of the CRC calculated on the receive address as an index into a 64 by 1 bit table written under program control A in the corresponding table entry constitutes a multicast address match as far as the network port
326. lter 0 0 Receive frames with mismatched physical addresses are ignored 1 Receive frames with any physical address accepted Promiscuous mode Rabbit 6000 User s Manual digi com 298 Network Port B Transmit Extra Status Register NBTESR Address 0x020C Bit s Value Description 7 This bit is are reserved and will always be read as zero 6 0 No transmit length out of range or not checked 1 Transmit frame had length out of range error 5 0 No transmit length check error or transmit length not checked 1 Transmit frame had length check error 4 0 No transmit CRC error or transmit CRC not checked 1 Transmit frame had CRC error 3 0 Transmit frame collision count NBPAOR NBPA1R NBPA2R NBPA3R NBPA4R Network Port Physical Address x Register Address 0x0210 Address 0x0211 Address 0x0212 Address 0x0213 Address 0x0214 Address 0x0215 Bit s Value Description 7 0 Write Byte of physical address for receive address filtering NBMFOR NBMF1R NBMF2R NBMF3R NBMF4R NBMF5R NBMF6R NBMF7R Network Port B Multicast Filter x Register Address 0x0218 Address 0x0219 Address 0x021A Address 0x021B Address 0x021C Address 0x021D Address 0x021E Address 0x021F Bit s Value Description 7 0 Write Eight bits of the
327. ly by transfers between the peripheral and memory However the USB peripheral has a minimum access time of 250 ns and typically requires wait states so fly by DMA may not be the most efficient access method 24 3 6 5 DMA with PWM and Timer C The PWM and Timer C peripherals have special support for DMA the block access and pointer regis ters in each of these peripherals provide a means for the 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 Rabbit 6000 User s Manual digi com 263 24 4 Register Descriptions DMA Master Control Status LSB Register DMCSLR Address 0x0100 Bit s Value Description 7 0 0 No effect on the corresponding DMA channel 7 0 Start or restart the corresponding DMA channel 7 0 using the contents Write 1 of the DMA channel registers This command should only be issued after only all the DMA channel registers source destination length and link if applicable have been loaded The corresponding DMA channel 7 0 is either disabled or has 7 0 0 completed the last buffer descriptor The corresponding DMA channel 7 0 is enabled and active These bits Read only 1 are set by the start command and remain set until the completion of the last buffer DMA Master Control Status MSB Register DM
328. m 334 29 1 1 Block Diagram Quadrature Decoder Channel x Timer A10 TAT10R Parallel Interrupt Interrupt Port Pins Couns Request QDSCR QDCxR QDCxHR 29 1 2 Registers Register Name Mnemonic I O Address R W Reset Quad Decode Ctrl Status Register QDCSR 0x0090 Quad Decode Control Register QDCR 0x0091 R W 00000000 Quad Decode Count 1 Register QDCIR 0x0094 R XXXXXXXX Quad Decode Count 1 High Register QDCIHR 0x0095 R XXXXXXXX Quad Decode Count 2 Register QDC2R 0x0096 R XXXXXXXX Quad Decode Count 2 High Register QDC2HR 0x0097 R XXXXXXXX Rabbit 6000 User s Manual digi com 335 29 2 Dependencies 29 2 1 I O Pins Each Quadrature Decoder channel can accept the two encoder inputs from one of three different locations as shown in the table below Each channel can select a different input option Note that these pins can be used for other peripherals at the same time as the Quadrature Decoder peripheral one example of this use is to measure pulse width on the I channels with the input capture peripheral Channel 1 Channel 2 Inputs Q Option 1 PDO PD2 Option 2 PEI PEO PE3 PE2 Option 3 5 PE4 6 29 2 2 Clocks The 8 10 bit Quadrature Decoder counters are clocked from the output of Timer A10 and can run at rates from the peripheral clock divided by 2 down to the peripheral clock divided by 512 by writing
329. metre reme erento 275 GOCR E 31 52 275 GPSCR uuu k u m m Sua sa 414 DA DEA e usa seers 276 uu a eere one 51 eerte terere eere 279 uqu a Qusa 53 DyLA0R EErEE ESENE 283 GROM m 51 DYLAIR ancien nackte 283 IBKCR uu uu 357 284 358 DyLEnR eei eee erento 279 90 d 329 DySA0OR qe 280 ICCSR u uui 328 DySAIR eee 280 ICLXR i ertet teen RENTES 331 DYSA2R GE 281 ICMR Cm 332 DySCR 277 le dq 331 DyTBR 272 ICTXR ik 2 m 330 DYTMR Sai an ee eee 273 ere 355 5 04 Dhaka ertet 388 um A Qu 355 ECCIR tee e eerta 388 au uuu 356 ECER uum u u 387 IOPCR qe 359 ECD0R 386 REOR 92 93 ECDIR 386 MACR 75 Rabbit 6000 User s Manual rabbit com 451 MBXCR cece ence sua 71 72 PDALR up 119 reete etu etes 73 tr er 121 MMIDR ete te deer ver 68 eR rea EIE ERES 121 MIS GR eee 32 307 PDB2R qp 122 MSSR iunge ERU EROR 33 REP 122 EEES 74 PDB4BR T 122 tee toe e e ol Per eta 300 PDB
330. mit FIFO load is completed and any interframe gap time or back off time has expired Transmission is aborted if a collision is detected and is retried up to 16 times using the standard random back off time algorithm Detection of a collision causes the transmitter to send a 32 bit Jam pattern of all ones to guarantee that all receivers in the net work recognize the collision The network port receiver uses the received preamble to synchronize to the phase of the incoming frame and then waits for the start frame delimiter 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 Rabbit 6000 User s Manual digi com 285 The receiver can receive frames independent of the address promiscuous mode or it can receive frames with a physical address match a broadcast address match or a multicast address match Normal DMA transfers of data begin once an address match occurs and continue until the end frame delimiter is recognized or the line goes idle because of a collision The network receiver calculates the CRC across the entire frame in parallel with character assembly and reports the result when the end frame delimiter is recognized Normally frames with bad CRC are discarded The receiver also reports misaligned end frame delimiters those that do not occur on b
331. mpt is made to load a program into the onchip 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 The following other registers are also described in this chapter e Global Output Control Register GOCR which controls the behavior of the CLK STATUS WDT and BUFEN pins Global CPU Register GCPU which holds the identification number of the processor Global Revision Register GREV which hold the revision number of the processor Rabbit 6000 User s Manual digi com 42 4 1 1 Block Diagram Basic System Peripherals Periodic Interrupt Interrupt Interrupt 32 kHz Clock E s DEO Request Real Time Clock Watchdog 1 00000000 Master Reset Timer IWDTOUT Pin Secondary Interrupt Interrupt Watchdog Timer Generation Request Rabbit 6000 User s Manual digi com 43 4 1 2 Registers Register Name Mnemonic I O Address R W Reset Global Control Status Register GCSR 0x0000 R W 11000000 Real Time Clock Control Register RTCCR 0 0001 W 00000000 Real Time Clock Byte 0 Register RTCOR 0 0002 R W Real Time Clock Byte 1 Register RTCIR 0x00
332. multicast filter At the end of a received multicast address the upper six bits of CRC are used as an index into this 64 bit table If the corresponding bit is zero the frame is discarded If the corresponding bit is one the frame is accepted Rabbit 6000 User s Manual digi com 299 Network Port B Configuration 0 Register NBCFOR Address 0x0240 Bit s Value Description 7 5 These bits are ignored and will always return zeros when read 4 0 Disable loopback 1 Enable loopback 3 0 Disable transmit flow control 1 Enable transmit flow control PAUSE control frames 2 0 Disable receive flow control 1 Enable receive flow control PAUSE control frames 1 0 Pass normal receive frames only 1 Pass all receive frames normal or control 0 0 Disable receiver 1 Enable receiver Network Port B Configuration 1 Register NBCF1R Address 0x0241 Bit s Value Description 7 0 No operation 1 Reset entire MAC 6 0 No operation 1 Reset transmit random number generator 5 4 These bits are ignored and will always return zeros when read 3 0 No operation 1 Reset MAC control sublayer receive domain logic 2 0 No operation 1 Reset receiver 1 0 No operation 1 Reset control sublayer transmit domain logic 0 0 No operation 1 Reset transmitter Rabbit 6000 User s Manual digi com 300
333. n No bootstrap code is fetched from address 0x0000 00 0 50 0 internal SRAM is enabled as a 16 bit memory device No bootstrap code is fetched from address 0x0000 00 1 on CS3 OEO The internal SRAM is enabled as a 16 bit memory device 01 x Bootstrap from the slave port 10 x Bootstrap from Serial Port A serial flash mode 11 x 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 50 and OE0 If SYSCFG is high memory bank 0 is set to CS3 and OEO In both cases the internal SRAM is selected in 16 bit mode If a 16 bit memory is used in memory bank 0 the first section of code must immediately select the 16 bit bus mode Chapter 5 provides a short sample program to do this If either of the SMODE pins is high the processor will enter the bootstrap mode and accept triplets from Serial Port A the serial flash bootstrap port or the slave port depending on the SMODE pin selection It is good practice to place pulldown resistors on the SMODE pins to ensure the proper operation of your design In the bootstrap mode the processor inhibits the normal memory fetch and instead fetches instructions from a small internal boot ROM This program reads triplets of three bytes from the selected peripheral The first byte is the most si
334. n 01 Suppress PWM interrupts seven of eight iterations of PWM counter 10 Suppress PWM interrupts three out of four iterations of PWM counter 11 Suppress PWM interrupts one out of two iterations of PWM counter 0 0 PWM output High for single block 1 Spread PWM output throughout the cycle Rabbit 6000 User s Manual digi com 346 PWM LSB x Register PWL2R Address 0x008C PWL3R Address 0x008E Bit s Value Description 7 6 Least significant two bits for the Pulse Width Modulator count 5 4 00 Normal PWM operation 01 Suppress PWM output seven of eight iterations of PWM counter 10 Suppress PWM output three out of four iterations of PWM counter 11 Suppress PWM output one out of two iterations of PWM counter 3 1 These bits are ignored and should be written with zero 0 0 PWM output High for single block 1 Spread PWM output throughout the cycle PWM MSB x Register PWMOR Address 0x0089 PWM1R Address 0x008B PWM2R Address 0x008D Address 0x008F Bit s Value Description Most significant eight bits for the Pulse Width Modulator count With a 7 0 count of n the PWM output will be High for n 1 clocks out of the 1024 clocks of the PWM counter PWM Block Access Register PWBAR Address 0x00E8 Bit s Value Description 70 Access the PWM register pointed to by t
335. n Assignments External Clock Crystal External OGL OCA C ir Signal Pins Clock Selection by 24 42 MHz crystal CLK HSI CFG pins Main Clock 20 200 MHz HSO CLK_HSO see chapter 3 external clock W Fi Clock 20 MH A XTL 20 MSSR 20 0 Eth t Clock 25 MH a XTL_25MO 25MO poe lt USB Clock 48 MH XTL_48MO MSSR ui 2 XTL 48MO uw 32 kHz Clock 32 kHz 32K The 32 kHz clock input is on 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 Rabbit 6000 User s Manual digi com 18 2 2 2 Other Registers Register Function GOCR Used to set up the CLK output pin Used to MSCR select clock input or PLL output for CPU clock select main clock or external 25 MHz clock for Ethernet select CPU clock or PLL output for Flexible Interface Modules MSSR Used to select crystal or external oscillator for Wi Fi and USB clocks and read main and Wi Fi PLL status GCMOR GCM1R sed to select the main PLL loop and pre divider values GCDR ENPR U Used to enable the main PLL U sed to enable the Wi Fi PLL automatic when Wi Fi is enabled Rabbit 6000 User s Manual digi com 19 2 3 Opera
336. n Considerations all dimensions in mm Key Feature Recommendation A Solder Land Diameter 0 356 0 014 Rabbit 6000 User s Manual digi com 432 Table 38 2 Design Considerations all dimensions in mm Key Feature Recommendation B NSMD Defined Land Diameter 0 406 0 016 Land to Mask Clearance min 0 076 0 003 D Conductor Width max 0 127 0 005 E Conductor Spacing typ 0 127 0 005 F Via Capture Pad max 0 406 0 016 G Via Drill Size max 0 203 0 008 D ale Land and Trace Via F Rabbit 6000 User s Manual digi com 433 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 Direction Function BGA 292 Ball BGA 233 Ball CLK Output Internal Clock Output M19 017 CLK_RTC Input 32KHz Clock CLK_HSI Input Main Clock Crystal In P20 K16 CLK_HSO Bidirectional Main Clock Crystal Out N20 17 Hardware RESET Input Master Reset RESOUT Output Reset Output R3 K2 ETH_PWR Output PHY Regulator Out B2 B4 B6 C5 C6 N14 OSC PWR Output Oscillator Regulator Out K4 N17 V11 F3 J15 R8 WIFI PWR Output Wi Fi Regulator Out W11 W12 TI7 P15 R9 RIO Rabbit 6000 User s Manual digi com 434 Table 38 3 Ra
337. n a rising edge a falling edge or both edges The signal on the external interrupt pin must be present for at least three peripheral clock cycles to be detected In addition the Rabbit 6000 has a minimum latency of 11 clocks to respond to an interrupt so the minimum external interrupt response time is three peripheral clock cycles plus 11 processor clock cycles Note that this just gets the program to the ISR jump table An additional 5 or 7 clocks is required for the jp Gump instruction plus whatever remaining clocks need to executed in the current instruction Rabbit 6000 User s Manual digi com 87 7 2 Block Diagram External Interrupts 0 1 PDO 1 Em PEO 1 PE4 5 Edge Detection External Interrupts PF 7 0 PG 7 0 w Enable and Edge Detection Interupt Generation Interrupt Generation External Interrupt Request External Interrupt Request Rabbit 6000 User s Manual digi com 88 7 2 1 Registers Register Name Mnemonic 1 Address R W Reset Interrupt 0 Control Register IOCR 0x0098 00000000 Interrupt 1 Control Register IICR 0x0099 R W 00000000 Interrupt 2 Control Register DCR 0x009A R W xx000000 Interrupt 3 Control Register I3CR 0x009B R W xx000000 Interrupt 4 Control Register IACR 0x009C R W xx000000 Interrupt 5 Control Register ISCR 0x009D R W xx000000 Interrupt 6 Control Register I6CR 0x009E R W xx000000 Interrupt 7 Control
338. n be used as an input or an output port Parallel Port A is also used as the data bus for the slave port and external I O bus The Slave Port Control Register SPCR is used to configure how Parallel Port A is used Parallel Port A is an input after reset If the SMODE pins have selected the slave port bootstrap mode Parallel Port A will be the slave port data bus until disabled by the processor Parallel Port A can also be used as an external I O data bus to isolate external I O from the main data bus The drive strength and slew rate can be individually controlled for each Parallel Port A pin In addition a 75 pullup or pulldown resistor can be enabled on each pin Note that it is possible for either Flexible Interface Module to use any of the parallel ports See Chapter 33 for more information Table 8 1 Parallel Port A Pin Alternate Output Functions Pin Name Slave Port External I O Data Bus Bus 7 0 SD 7 0 ID 7 0 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 Rabbit 6000 User s Manual digi com 94 8 1 1 Block Diagram Parallel PortA PADR e 7 0 External I O Data lt 8 1 2 Registers Register I O Address R W Reset Port A Data Register PADR 0x0030 Port Ax Control Registe
339. n on the PC bus Serial Port G Slave Address 0 Register SGSAOR Address 0x0590 Bit s Value Description Bits 7 0 of the slave address when operating in the slave mode In the 7 7 0 bit addressing mode only bits 6 0 of this field used and bit 7 is ignored Serial Port G Slave Address 1 Register SGSA1R Address 0x0591 Bit s Value Description 7 2 These bits are reserved and should always be written with zeros 1 0 Bits 9 8 of the slave address when operating in the slave mode These bits are ignored in the 7 bit addressing mode Rabbit 6000 User s Manual digi com 399 Serial Port G Slave Address 2 Register SGSA2R Address 0x0592 Bit s Value Description 7 0 These bits are reserved and should always be written with zeros Serial Port G Slave Address 3 Register SGSA3R Address 0x0593 Bit s Value Description 7 0 Use 7 bit addressing slave mode 1 Use 10 bit addressing slave mode 6 0 These bits are reserved and should always be written with zeros Serial Port G Timing Control 0 Register SGTCOR Address 0x0594 Bit s Value Description 7 0 Bits 7 0 of the data acknowledgement delay Serial Port G Timing Control 1 Register SGTC1R Address 0x0595 Bit s Value Description 7 5 These bits are reserved and should be written as zeros 4 2 Glitch s
340. n 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 OHCD specification and is fully interfaced with the Rabbit 6000 DMA Both receive and transmit have a dedicated 2048 byte FIFO Network Port D handles all of the DMA data transfer descriptors automatically Two DMA channels can be allocated for its use via the appropriate DMA Special Control Registers The network port requires an accurate 48 MHz clock to generate the proper USB serial rate An external crystal can be used to drive the internal oscillator or an external clock signal can be injected directly The USB differential data pins have internal 19 5 pulldown resistors that may be enabled via register settings The I O interface consists of a bidirectional differential data pair 48 MHz crystal input output and two optional signals for power control and current fault detection that are shared with the Parallel Port E pins The interface to Network Port D is actually a 32 bit interface so some special handling is required for all registers except for USBWR and NDWR See Section 27 3 for more details 27 1 1 Block Diagram USB Host Peripheral Open Host tur EL Interface D Interrupt Interrupt Control Request USB_PWR PE2 USB_OVR PE3 2048 bytes Control Rx FIFO 2048 bytes Rabbit 6000 User s Manual digi com 317 27 1 2 Registers Regi
341. nd D A converters are available for customer use if the Wi Fi is disabled see Chapter 23 for additional details Rabbit 6000 User s Manual digi com 309 26 1 1 Block Diagram 802 11b g Wireless LAN Baseband Control Rx FIFO 2048 bytes eceiver AES Engine Tx FIFO 2048 bytes Transceiver Control Rabbit 6000 User s Manual digi com 310 26 1 2 Registers Register Name Mnemonic Address R W Reset Enable Network Port Register ENPR 0x0430 00000000 Network Port Version 0 Register NCVOR 0 0 00 00000000 Network Port Version 1 Register NCVIR 0 0 01 00000001 Network Port C General Control 0 Register NCGCOR 0 0 04 00000000 Network Port General Control 1 Register NCGCIR 0 0 05 01000000 Network Port General Control 2 Register NCGC2R 0 0 06 01111111 Network Port C General Control 3 Register NCGC3R 0 0 07 R 00110111 Network Port C General Status 0 Register NCGSOR 0 0 08 00010000 Network Port General Status 1 Register NCGSIR 0 0 09 00000000 Network Port General Status 2 Register NCGS2R 0x0A0A 00000000 Network Port General Status 3 Register NCGS3R 0x0A0B R W 00110000 Network Port C RSSI 0 Register NCRSSIOR 0x0A0C R 01111111 Network Port C RSSI 1 Register NCRSSIIR 0x0
342. nd I O control signals are held high The special behavior of CS1 allows an external RAM to be powered by the same source as the VBATIO pin which powers CS1 In this case a pullup resistor is required on CS1 to keep the RAM deselected during powerdown The RESOUT pin which is powered by the backup battery is high during reset and powerdown as long as VBAT and VBATIO are present but low at all other times and can be used to control an external power switch to disconnect VDDIO from VBATIO when the main power source is removed Table 3 1 lists the condition of the processor after reset takes place The state of all registers after reset is provided in the chapter describing the specific peripheral Table 3 1 Rabbit 6000 Condition After Reset Control Register Function Operation After Reset CPU Clock Peripheral Clock Clock Doubler Clock Dither Pees Memory Bank 0 50 OEO write protected 4 wait states Control Register Memory Advanced 8 bit interface CPU Registers PC SP IIR EIR 0x0000 HTR Interrupt Priority OxFF Priority 3 Register y Watchdog Timer Enabled 2 seconds Secondary Watchdog Timer pau Rabbit 6000 User s Manual digi com 38 The processor checks the SMODE and 5 5 pins after the RESET signal is inactive Table 3 2 sum marizes what happens Table 3 2 SMODE Pin Settings SMODE Pins 1 0 SYSCFG Operatio
343. nd write it to NBDR Write the buffer descriptor s address to the DMA s initial address registers see Chapter 24 for more information Enable the DMA transfer by auto loading the buffer The packet transmission will proceed automatically If any interrupts were enabled for any transmitted packet events they will occur upon completion or error Note that network interrupts will occur when the data appears in the network peripheral but DMA interrupts will occur when the DMA transfer is complete 25 3 3 Receive The following steps explain how to receive an Ethernet packet l Set up a DMA buffer descriptor that will read the packet data from NBDR and write it to mem ory Write the buffer descriptor s address to the DMA s initial address registers see Chapter 24 for more information Setup a DMA interrupt to handle the packet once it has been received and copied to memory 3 Enable the DMA transfer by auto loading the buffer 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 Rabbit 6000 User s Manual digi com 292 25 3 4 Handling Interrupts The network port transmit interrupt is automatically cleared by reading NBCSR received packets are handled via the DMA interrupt which is automatically cleared when the ISR is ca
344. ng 1 Enable preamble checking Rabbit 6000 User s Manual digi com 301 Network Port B Gap 0 Register NBGOR Address 0x0244 Bit s Value Description 7 This bit is ignored and will always return zero when read Back to back interpacket gap Recommended values are 0x15 for full 6 0 duplex operation and 0x12 for half duplex operation These values result in 9 6 us for 10 Mbit s and 0 96 us for 100 Mbit s as specified by 802 3 Network Port B Gap 2 Register NBG2R Address 0x0246 Bit s Value Description 7 This bit is ignored and will always return zero when read 6 0 Non back to back interpacket gap for carrier deference Recommended value is 0 0 as specified by 802 3 Network Port B Gap 1 Register NBG1R Address 0x0247 Bit s Value Description 7 This bit is ignored and will always return zero when read Non back to back interpacket gap Recommended value is 0x12 This 6 0 value results in 9 6 us for 10 Mbits s and 0 96 us for 100 Mbits s as specified by 802 3 Network Port B Retransmit Max Register NBRMR Address 0x0248 Bit s Value Description 7 4 These bits ignored and will always return zero when read 3 0 Number of retransmission attempts after a collision before aborting Default and value specified by 802 3 is OxF Network Port B Collision Window Register NBCWR Address
345. ng an output port to create a sampled waveform while the entire buffer option can be used for example to send precisely timed serial messages over a serial port The DMA Timed Request is generated by a 16 bit down counter clocked by the peripheral clock divided by two The counter counts down from the limit programmed into the DMA Timed Request Divider regis ters to zero and then reloads The timed request is generated by the reload condition The DMA operation is controlled by memory structures called buffer descriptors The current buffer descrip tor resides in the registers of the DMA channel but may have been either placed there by the processor or loaded directly by the DMA channel itself Buffer descriptors may be used singly to transfer one block of data or they may be linked together for scatter gather operation Each DMA channel also contains an 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 Rabbit 6000 User s Manual digi com 250 pair of control bytes a byte count for the data a source address a destination address and an optional link address In addition each DMA channel retains a count of the number of bytes remaining in the buffer to allow software to determine the amount of valid data in a buffer that are terminated early by the source of the data
346. ng on code execution or data reads and writes The Rabbit 6000 requires no external memory driver or interface logic Its 24 bit address bus 8 bit or 16 bit data bus three chip select lines two output enable lines and two write enable lines can be interfaced directly with up to six memory devices Up to 1 MB of code memory and 15 MB of data memory can be accessed directly via the Dynamic C development software The Rabbit 6000 also contains 1 MB of inter nal high speed 16 bit RAM and 32 KB of battery backed SRAM which can be used instead of or in addi tion to any external memory devices A built in slave port allows the Rabbit 6000 to be used as master or slave in multi processor systems per mitting separate tasks to be assigned to dedicated processors An 8 line data port and five control signals simplify the exchange of data between devices A remote cold boot enables startup and programming via a serial port a slave port or from a standard external serial flash device The Rabbit 6000 features eight 8 bit parallel ports yielding a total of 64 digital I O Six CMOS compati ble serial ports are available All six are configurable as asynchronous including output pulses in IrDA format while four are configurable as clocked serial SPI and two are configurable as SDLC HDLC The various internal peripherals share the parallel port s I O pins Drive strength slew rate and pullup pull down resistors can be controlled on all of the paralle
347. nk 2 1 0 Disable I O handshake for I O Bank 1 1 Enable I O handshake for I O Bank 1 0 0 Disable I O handshake for I O Bank 0 1 Enable I O handshake for I O Bank 0 Rabbit 6000 User s Manual digi com 355 1 O Handshake Timeout Register IHTR Address 0x002A Bit s Value Description 7 0 No I O handshake timeout has occurred since the last read of this register An I O handshake timeout has occurred since the last read of this register This bit is cleared by a read of this register This bit is reserved and should be written with zero 5 0 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 T O transaction will complete automatically Rabbit 6000 User s Manual digi com 356 10 Bank Control Register IBOCR Address 0x0080 or 0x0450 IB1CR Address 0x0081 or 0x0451 IB2CR Address 0x0082 or 0x0452 Address 0x0083 or 0 0453 IB4CR Address 0x0084 or 0x0454 IB5CR Address 0x0085 or 0x0455 IB6CR Address 0x0086 or 0x0456 IB7CR Address 0x0087 or 0x0457 Bit s Value Description 7 6 00 Fifteen wait states for accesses in this bank 01 Seven wait states for accesses in this bank 10 Three wait st
348. nly 1 cleared by the read of SGSOR the bit latched in the interface remains set y until the next read of SGSOR Serial Port G Status 2 Register SGS2R Address 0x0586 Bit s Value Description 7 0 These bits are reserved and will always return zeros Serial Port G Status 3 Register SGS3R Address 0x0587 Bit s Value Description 7 0 These bits are reserved and will always return zeros Serial Port G Clock Division 0 Register SGCDOR Address 0x0588 Bit s Value Description 7 0 Bits 7 0 of the divider that generates the clock on SCL Rabbit 6000 User s Manual digi com 398 Serial Port G Clock Division 1 Register SGCD1R Address 0x0589 Bit s Value Description 7 0 Bits 15 8 of the divider that generates the PC clock on SCL Serial Port G Clock Division 2 Register SGCD2R Address 0x058A Bit s Value Description 7 2 These bits are reserved and should always be written with zeros 1 0 Bits 17 16 of the divider that generates the C clock on SCL Serial Port G Clock Division 3 Register SGCD3R Address 0x058B Bit s Value Description 7 0 These bits are reserved and should always be written with zeros Serial Port G Data Register SGDR Address 0x058C Bit s Value Description 7 0 Read Returns the byte received from the 2 bus Write Data byte for transmissio
349. nnne nnne nnne nennen 352 rer S 250 5 n 349 dependencies tette races 255 F external requests 250 interrupts 251 255 257 Flexible Interface Modules example ISR 2 2 257 block diagram eene 369 memory addresses 2 2 2111 251 hi 371 Operati OT u HEREDES 256 dependencies rere 371 OVERVIC Ws SE 249 371 372 ES 258 Operation cde dee asin 372 register descriptions 22 264 OVeEL VIG W 1 5 ncestessescesserste 368 IegISterS RES 253 register descriptions a 374 on 256 RM 370 timed requests essere 250 transfer priorities 22212 258 H transfer 2 258 hardware debugging transfer rates 22222 1 21 259 See breakpoints transfers s l sua n au 251 use with peripherals 263 Rabbit 6000 User s Manual rabbit com 447 l Parallel Port E seen 129 2 Parallel Port eene 140 peripheral Parallel Port 148 block diagram 4 4 4 4 4 9 390 Pa
350. nse from slave after transmit byte complete master mode 1 0 No interrupt on receive byte complete 1 Enable interrupt on receive byte complete 0 0 No interrupt on transmit byte complete 1 Enable interrupt on transmit byte complete Serial Port G Control 2 Register SGC2R Address 0x0582 Bit s Value Description 7 1 These bits are reserved and should always be written as zeros 0 0 No effect 1 Force SDA low This is not used in normal operation Serial Port G Control 3 Register SGC3R Address 0x0583 Bit s Value Description 7 0 These bits are reserved and should always be written as zeros Rabbit 6000 User s Manual digi com 396 Serial Port G Status 0 Register SGSOR Address 0x0584 Bit s Value Description 7 0 No stop condition detected Read MI only 1 Stop condition detected This bit is cleared by the read of this register 6 0 No non ACK response detected Read l Non ACK response from the slave device after transmitting a byte only master mode This bit is cleared by the read of this register 5 0 No byte received Read E X only 1 Byte has been received This bit is cleared by the read of this register 4 0 No byte transmitted Read only 1 Byte has been transmitted This bit is cleared by the read of this register 3 0 2 bus is not busy Read 2 only The I C bus is busy but the controll
351. nsfer clock is established by PGCR Parallel Port G Alternate Low Register PGALR Address 0x004A Bit s Value Description 7 6 00 Parallel Port G bit 3 alternate output 0 FIMB3 01 Parallel Port bit 3 alternate output 1 13 10 Parallel Port G bit 3 alternate output 2 TIMER C3 11 Parallel Port bit 3 alternate output 3 SCLKD 5 4 00 Parallel Port G bit 2 alternate output 0 FIMB2 01 Parallel Port G bit 2 alternate output 1 12 10 Parallel Port G bit 2 alternate output 2 TIMER C2 11 Parallel Port G bit 2 alternate output 3 TXF 3 2 00 Parallel Port G bit 1 alternate output 0 FIMB1 01 Parallel Port G bit 1 alternate output 1 11 10 Parallel Port G bit 1 alternate output 2 TIMER C1 11 Parallel Port G bit 1 alternate output 3 RCLKF 1 0 00 Parallel Port G bit 0 alternate output 0 FIMBO 01 Parallel Port G bit 0 alternate output 1 IO 10 Parallel Port G bit 0 alternate output 2 TIMER CO 11 Parallel Port G bit 0 alternate output 3 TCLKF Rabbit 6000 User s Manual digi com 149 Parallel Port G Alternate High Register PGAHR Address 0x004B Bit s Value Description 7 6 00 Parallel Port G bit 7 alternate output 0 FIMB7 01 Parallel Port G bit 7 alternate output 1 17 10 Parallel Port G bit 7 alternate output 2 PWM3 11 Parallel Port G bit 7 alternate output 3 SCLKC 5 4 00 Parallel Port bit 6 alternate output 0 FIMB6 01 Par
352. nterrupt will occur on the slave device whenever the mas ter writes to SPDOR The SLVATTN pin is asserted whenever the slave device writes to SPDOR Either of these conditions is cleared when either the master or slave reads or writes any of the slave port registers The slave port interrupt vector is in the IIR at offset 0 080 It can be set as Priority 1 2 or 3 by writing to SPCR Rabbit 6000 User s Manual digi com 218 21 3 Operation Figure 21 1 shows a typical slave port connection between a Rabbit processor as the master and two slaves MASTER Rabbit First SLAVE Rabbit Second SLAVE Rabbit ISLAVEATTN ISCS Figure 21 1 Master Slave Port Connections Rabbit 6000 User s Manual digi com 219 These connections are summarized in Table 21 3 Table 21 3 Typical Slave Port Connections Master Slave 1 Slave 2 Data Bus DO D7 SDO SD7 PAO PA7 SDO SD7 0 Address Bus 0 1 5 0 5 1 4 5 5 0 5 4 5 Read Strobe NORD SRD PB3 SRD PB3 Write Strobe IOWR SWR PB2 SWR PB2 Slave 1 Chip Select I O strobe 16 EDS 865 i v Slave 2 Chip Select PD7 m 2 ISCS PB6 I O strobe I7 External Interrupt 0 from Slave 1 PEO SLVATTN PB7 External Interrupt 1 from Slave 2 SLVATTN 7 Note that the slave port the master Rabbit processor is not used the master uses the data bus to s
353. nual digi com 382 34 ERROR CHECK AND CORRECTION 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 Table 34 1 Rabbit 6000 Error Check Operations Operation Commonly Used For 2 ane NAND flash error detection and correction CRC 32 IEEE 802 3 Ethernet Wi Fi MPEG 2 CRC 16 IBM USB CRC 16 CCITT 802 15 4 Bluetooth PPP IrDA SecureDigital CRC 15 CAN Data can be written 32 bits at a time and the resulting counter value can be read out at any point Both the line and column parity values are available for ECC allowing for 1 bit error correction and 2 bit error detection Data can be read in both normal or reverse bit order The ECC peripheral is designed for use with the DMA Rabbit 6000 User s Manual digi com 383 34 1 1 Block Diagram Error Check and Correction Input Data im Selection ill CRC 34 1 2 Registers Check Code ECC Result Registers ECCR ECPR ECDxR ECPSR ECWxR ECCxR Register Name Mnemonic I O Address R W Reset ECC Data 0 Register ECDOR 0 05 0 00000000 ECC Data 1 Register ECDIR 0x05C1 R W 00000000 ECC Data 2 Register ECD2R 0x05C2 R W 00000000 ECC Data 3 Register ECD3R 0x05C3
354. odings the clock transitions are at the bit cell boundary the data transitions are at the center of the bit cell and the DPLL operation is adjusted accord ingly Decoding biphase mark or biphase space encoding requires that the data be sampled by both edges of the recovered receive clock 20 4 Register Descriptions SEDR SFDR Serial Port x Data Register Address 0x00C8 Address 0x00D8 Bit s Value Description 7 0 Read Returns the contents of the receive buffer Write Loads the transmit buffer with a data byte for transmission SEAR SFAR Serial Port x Address Register Address 0x00C9 Address 0x00D9 Bit s Value Description 7 0 Read Returns the contents of the receive buffer Write Loads the transmit buffer with an address byte marked with a zero address bit for transmission In the HDLC mode the last byte of a frame must be written to this register to enable subsequent CRC and closing flag transmission SELR SFLR Serial Port x Long Stop Register Address 0x00CA Address 0x00DA Bit s Value Description 7 0 Read Returns the contents of the receive buffer Write Loads the transmit buffer with an address byte marked with a one address bit for transmission Rabbit 6000 User s Manual digi com 210 Se
355. ol Register 151 Slave Port Data x Registers 225 Parallel Port G Function Register 151 Slave Port Status Register 225 Parallel Port Gx Control Register 152 160 system management 4 201 44 Parallel Port H tne 155 Address Bus Control Register 80 Parallel Port D Alternate Low Register 158 Battery Backed Onchip Encryption RAM 53 Parallel Port H Alternate High Register 159 Control Pin Control Register 82 Parallel Port H Data Direction Register 160 Data Bus Pin Control Register 81 Parallel Port H Data Register 158 Global CPU Register 52 Parallel Port H Drive Control Register 159 Global Output Control Register 52 Parallel Port H Function Register 159 Global RAM Configuration Register 51 PWM pice 343 Global Revision Register 53 PWM Block Access Register 347 Global ROM Configuration Register 51 PWM Block Pointer Register 347 Control Pin Control Register 359 PWM LSB 0 346 Master System Configuration Register 32
356. on a 345 n vn 238 ii Z P 340 342 LO WEE 238 OVELVIEW C 340 ACSXxCR 0000 01 76 register descriptions 346 EIS 247 vive eos eere away eee 343 ADCCSR EAEE 246 spreading function reene 341 ADCER 245 We 245 ADCXLR Q Sasu SS u 248 Rabbit 6000 User s Manual rabbit com 450 ADCXMR este e EO Ede 248 E s 386 599 1 kuya 80 FECD3R uuu ua aa eto etre ett aya asa 386 BDCR 365 EGDPR tee 387 366 ECPSR qe KM P m 387 BXAIR uuu u ERE EE ERE 366 BO WOR 388 BCA R 366 BOW IR 388 cete toe peeves 365 EBCW2R 388 BXIMOR 367 BOW BR aa 388 BXMIR DERE ME 367 ENPR uay E terti Us 34 308 2 Wt 367 2 376 82 FACER 377 DATA SEG eiie rerit ere aceto eer n 69 9 ceo oce 377 DATASEQGLEH 70 FADER ETC 374 DATASEGD 70 Em 374 DBPCE ner eee 81 EAIGR uu a NEU 375 DMALDLR etta 264
357. on 2 If an interrupt is desired at a particular count write that value into the LSB and MSB registers If the interrupt is enabled but no match value is loaded the interrupt will occur when the counter reaches 0 0000 Note that an interrupt will be generated if the counter is cleared via ICCSR as well 3 Set the start condition for the pulse type desired 4 Reset the counter by writing to ICCSR 5 Reading the counter at any time will give the current count Rabbit 6000 User s Manual digi com 327 28 4 Register Descriptions Input Capture Control Status Register ICCSR Address 0x0056 Bit s Value Description 7 0 The Input Capture 2 Start condition has not occurred Read 1 The Input Capture 2 Start condition has occurred 6 0 The Input Capture 2 Stop condition has not occurred Read 1 The Input Capture 2 Stop condition has occurred 5 0 The Input Capture 1 Start condition has not occurred Read 1 The Input Capture 1 Start condition has occurred 4 0 The Input Capture 1 Stop condition has not occurred Read 1 The Input Capture 1 Stop condition has occurred 3 0 The Input Capture 2 counter has not rolled over to all zeros Read 1 The Input Capture 2 counter has rolled over to all zeros 2 0 The Input Capture 1 counter has not rolled over to all zeros Read 1 The Input Capture 1 counter has rolled over to all zeros 7 2 These status bit
358. on of the clock the output clock will be asymmetric as shown in Figure 2 3 lt P Oscillator 48 52 Oscillator delayed S and inverted L Doubled clock Delay time Example Write Data out Cycle Write pulse Early write pulse option Address CS K X Example _ Data out from mem Read Cycle Output enb J Early output enb y option Figure 2 3 Effect of Clock Doubler The doubled clock low time is subject to wide 50 variation since it depends on process parameters temperature and voltage The times given above are for a core supply voltage of 1 8 V and a temperature of 25 C The values increase or decrease by 1 for each 5 C increase or decrease in temperature The doubled clock is created by xor ing the delayed and inverted clock with itself If the original clock does not have a 50 50 duty cycle then alternate clocks will have a slightly different length Since the duty cycle of the built in oscillator can be as asymmetric as 52 48 the clock generated by the clock doubler will exhibit up to a 4 variation in period on alternate clocks The memory access time is not affected because the memory bus cycle is 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 Rabbit 6000 User
359. one Asynch Serial Ports With Support for 6 6 6 6 None IrDA Communication Serial Ports with Support for SDLC HDLC IrDA 2 EF 2 E F 2 E F 2 E F None Communication Serial Ports with 4 Byte FIFO 6 2 EF 2 EF 2 E F None Maximum Asynchronous Clock speed 8 Clock Speed 8 Clock Speed 8 Clock Speed 8 Clock Speed 32 Baud Rate Hardware Ports 1 None None None None 10 100Base T 10 100Base T 10Base T with PHY only partial PHY Son Wi Fi 802 11a b g Yes Yes No No No USB 2 0 compatible Full speed host No No No No PWM Outputs 4 4 4 4 None Rabbit 6000 User s Manual digi com 14 Feature Rabbit 6000 Rabbit 5000 Rabbit 4000 Rabbit 3000 Rabbit 2000 Variable Phase PWM Outputs PPM OnE None Input Capture Units 2 2 2 2 None External Interrupts Vectors 22 8 6 2 6 2 4 2 4 2 Quadrature Decoders 2 channels 2 channels 2 channels 2 channels None Flexible Interface Modules 2 None None None None Hardware Breakpoints 7 7 7 None User A D Converter Channels 8 None None None None A D Converter Channels Wi Fi disabled 3 3 None None None D A Converter Channels 2 2 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 Rabbit 6000 User s Manual digi com 15 2 CLOCKS 2 1 Overview The R
360. ons Serial Port x Data Register SADR Address 0 00 0 SBDR Address 0x00D0 SCDR Address 0x00E0 SDDR Address 0 00 0 Bit s Value Description 7 0 Read Returns the contents of the receive buffer Write Loads the transmit buffer with a data byte for transmission Serial Port x Address Register SAAR Address 0x00C1 SBAR Address 0x00D1 SCAR Address 0x00E1 SDAR Address 0x00F1 Bit s Value Description Returns the contents of the receive buffer Reading the data from this register in the clocked serial mode automatically causes the receiver to start a byte receive operation eliminating the need for software to issue the start receive command 7 0 Read Loads the transmit buffer with an address byte marked with a zero address bit for transmission Writing the data to this register in the Write clocked serial mode causes the transmitter to start byte transmit operation eliminating the need for the software to issue the start transmit command Serial Port x Long Stop Register SALR Address 0x00C2 SBLR Address 0x00D2 SCLR Address 0x00E2 SDLR Address 0x00F2 Bit s Value Description 7 0 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 Rabbit 6000 Us
361. or this channel This divider is not used unless the MSB of the corresponding SxDHR is set to one Serial Port x Divider High Register SEDHR Address 0x00CF SFDHR Address 0x00DF Bit s Value Description 7 0 Disable the serial port divider and use the output of Timer to clock the serial port l 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 6 0 Seven MSBs of the divider that generates the serial clock for this channel Rabbit 6000 User s Manual digi com 215 21 SLAVE PORT 21 1 Overview The slave port is a parallel communication port that can be used to communicate with an external master device The slave port consists of three data input and data output registers and a status register The data input registers are written by the master the external device and are read by the slave The data output registers are written by the slave and are read by the master Note that the data registers are named from the point of view of the slave The slave device can only read the data input registers and write to the data output registers Similarly the master device can only read the data input registers and write the data output registers Both devices can read and write to the status register The status register contains the interrupt status bits and a status flag correspond
362. ort bit carries its alternate signal as an output See Table 11 1 Parallel Port D Drive Conirol Register PDDCR Address 0x0066 Bit s Value Description 7 0 0 The corresponding port bit as an output is driven high and low 1 The corresponding port bit as an output is open drain Parallel Port D Data Direction Register PDDDR Address 0x0067 Bit s Value Description 7 0 0 The corresponding port bit is an input 1 The corresponding port bit is an output Parallel Port D Bit 0 Register PDBOR Address 0x0068 Bit s Value Description 7 1 These bits are ignored The port buffer bit 0 is written with the value of this bit The port buffer 0 Write will be transferred to the port output register on the next rising edge of the port transfer clock Parallel Port D Bit 1 Register PDB1R Address 0x0069 Bit s Value Description 7 2 0 These bits are ignored The port buffer bit 1 is written with the value of this bit The port buffer 1 Write will be transferred to the port output register on the next rising edge of the port transfer clock Rabbit 6000 User s Manual digi com 121 Parallel Port D Bit 2 Register PDB2R Address 0x006A Bit s Value Description 7 3 1 0 These bits are ignored The port buffer bit 2 is
363. ory space which is divided into four segments root data stack and XMEM The root segment is mapped directly to physical address 0x000000 while the data and stack segments can be mapped to 4 KB boundaries anywhere in the physical space The boundaries between the root and data segments and the data and stack segments can be adjusted in 4 KB blocks as well The XMEM segment is a fixed 8 KB and points to a physical memory address block specified in the LXPC register It is possible to run code in the XMEM window providing an easy means of storing and executing code beyond the 64 KB logical memory space Special call and return instructions to physical addresses are provided that automatically update the LXPC register as necessary Rabbit 6000 User s Manual digi com 55 L 12 MM STACK SEGMENT SEGSIZE REGISTER y x NES a eee 0x13 RIW 43 0 x000 LOGICAL PHYSICAL ADDRESS MAP ADDRESS MAP Figure 5 2 Logical and Physical Memory Mapping The Rabbit 2000 and 3000 had numerous instructions for reading and writing data to logical addresses but only had limited support for reading and writing data to a physical memory address In the Rabbit 4000 a wide range of instructions was provided to read and write to physical addresses 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 physica
364. peripheral does not support the high speed 3 4 Mbit s mode The PC peripheral contains additional glitch suppression circuitry to further improve noise rejection It can generate an interrupt on a variety of master and slave mode conditions The interface to the C peripheral is actually a 32 bit interface so some special handling is required for all the registers except SGDR and SGMCR See Section 35 3 for more details Rabbit 6000 User s Manual digi com 389 35 1 1 Block Diagram 12 Peripheral PEO Transmit PE4 SDA SGDR GPIO n Interrupt Interrupt ii Select a E Request PE1 i PES Control SGMCR SCL SGMBxR SGTCxR Peripheral Master Clock Clock Generation SGCDxR Rabbit 6000 User s Manual digi com 390 35 1 2 Registers Register Name Mnemonic I O Address R W Reset SGCOR 0x0580 00000000 SGCIR 0x0581 00000000 Serial Port G Control Registers SGCOR 0x0582 R W 00000000 SGC3R 0x0583 00000000 SGSOR 0x0584 00000000 SGSIR 0 0585 00000000 Serial Port G Status Registers SGS2R 0x0586 R W 00000000 SGS3R 0x0587 00000000 SGCDOR 0x0588 00000000 2 SGCDIR 0x0589 00000000 Serial Port G Clock Divider Registers SGCD2R 0x058A R W 00000000 SGCD3R 0 058 00000000 Serial Port Data Register SGDR 0 058 00000000 SGSAOR 0x0590 00000000 SGSAIR 0x0591 00000000 Serial Port G Slave Address Registers SGSA2R 0x0592 R W 00000000 SGSA3R 0x0593 00000000
365. pheral enables can be overridden by settings in DySCR 8 The initial address registers DyIAnR should be loaded with the physical address of the first buffer descriptor 9 The buffer descriptor can be loaded and the DMA transfer started by writing to the appropriate bit of DMALLR or DMALMR 24 3 1 Handling Interrupts The DMA interrupt request is cleared automatically when the interrupt is handled A DMA interrupt will occur at the end of a transfer for any buffer descriptor that has bit 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 ret Rabbit 6000 User s Manual digi com 257 24 3 3 DMA Priority with the Processor When the bus interleaving mode is in use DMA transfers will not interrupt the CPU code execution so the priority is of less importance than when the bus sharing mode is in use In that situation normal code execution cannot occur while the DMA is active This includes handling interrupts so it is important to limit the amount of time that the DMA can operate if the bus sharing mode is used This is handled in several ways First of all the DMA transfers can be set to take place whenever the pro cessor is operating at one of the four priority levels 0 3 note that there is a single priority level for all DMA transfers Table 24 3 DMA Trans
366. poet ege 400 WPSXHR ete ertet ete ettet sei belt 79 hri 400 WPSXLR eise tetti there eerie 78 SGICIR ie teret eve ED REP EORR 400 WPSXR ise hii ne 77 SGIC2R 400 analog components 231 241 SGICSR ia oet gne te 400 aaa 36 SPER tete teen 41 99 105 226 359 breakpoints iuter emer 362 SPDXR ie eee nid 225 Breakpoint x Address 0 Register 366 SPSR qe 225 Breakpoint x Address Register 366 STACK SEG eese ette reiten 69 Breakpoint x Address 2 Register 366 STACKSEGH irre n rents 69 Breakpoint x Control Register 365 STACKSEGE gereret 69 Breakpoint x Mask 0 Register 367 80 Breakpoint x Mask 1 Register 367 STKHLR 80 Breakpoint x Mask 2 Register 367 STKLLR 80 Breakpoint Debug Control Register 365 SWDTR Reto Rees 51 ClOCK8 u Cp EUR eas 17 SKAR teet reete etia 193 210 Global Clock Double Register 30 NP 0l dm 196 213 Global Clock Modulator 0 Register 29 SXxDBR eei 199 215 Global Clock Modulator 1 Register 29 SXDLR une u u ERREUR 198 215 Global Control Status Register 28 48 SXDR eere tre RH Renta
367. ponse to this setting may be 11 delayed until the PLL output is stable roughly 200 us after enabling the system PLL uses 32 kHz clock to generate delay Rabbit 6000 User s Manual digi com 32 Master System Status Register MSSR Address 0x0435 Bit s Value Description 7 6 These bits are reserved and should be written with zeros 5 0 Direct Wi Fi clock input 1 Enable Wi Fi crystal oscillator 4 0 Direct USB clock input 1 Enable USB crystal oscillator 3 0 Normal operation pron 1 Small package address and data bus option enabled TEST or OxC 2 0 Large package 2 1 Small package 1 0 Wi Fi PLL not enabled or output not stable 2 1 Wi Fi PLL is enabled with stable output 0 0 System PLL not enabled or output not stable a 1 System PLL is enabled with stable output Rabbit 6000 User s Manual digi com 33 Enable Network Port Register ENPR Address 0x0430 Bit s Value Description 7 0 Disable Network Port C the Wi Fi port 1 Enable Network Port the Wi Fi port 6 0 Disable Network Port B the 10 100Base T Ethernet port 1 Enable Network Port B the 10 100Base T Ethernet port 5 0 Disable Network Port D the USB port 1 Enable Network Port D the USB port 4 0 Internal 10 100 This bit is ignored unless bit 6 of this register is also set at which point t
368. priority among interrupts if multiple requests are pending as shown in Table 6 3 Interrupts marked as cleared automatically have their requests cleared when the interrupt is first handled Table 6 3 Interrupt Priorities Priority Interrupt Source Action Required to Clear the Interrupt Highest Breakpoint Read the status from BDCR System Mode Violation Cleared automatically by interrupt acknowledge cycle Lowest Stack Limit Violation Cleared automatically by interrupt acknowledge cycle Write Protection Violation Cleared automatically by interrupt acknowledge cycle Secondary Watchdog Restart secondary watchdog by writing to WDTCR External Interrupt 7 0 Cleared automatically by interrupt acknowledge cycle Periodic Interrupt 2 kHz Quadrature Decoder Read the status from GCSR Read the status from QDCSR Timer B Read the status from TBCSR Timer A Read the status from TACSR Input Capture Read the status from ICCSR PWM Write any PWM register Timer C Read the status from TCCSR Slave Port Rd Read from SPD0R SPDIR or SPD2R Wr Write to SPDOR SPD1R SPD2R or dummy write to SPSR DMA 15 0 Cleared automatically by interrupt acknowledge cycle Network Port B Read interrupt status from NBCSR Network Port C Read interrupt status from NCCSR Network Port D Remove the interrupting condition Flexible Interface Module A Write a 1 to bit
369. ption unless one of the short or self timed chip selects is used The I O current use will vary with pin activity Table 37 9 Typical Sleepy Mode Current Consumption 40 C to 85 C Pin Voltage Current IcoRE 12 5mA lio 33V 6 mA Rabbit 6000 User s Manual digi com 427 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 Note that the VBATIO pin can be powered at 1 2 V during powerdown even if the processor is running at 3 3 V normally A circuit to switch between a 1 2 2 0 V battery and the main power can use the RESOUT pin to switch the power source for the VBATIO pin R is a current limiting resistor that should be adjusted for the battery voltage a good value to use for a 3 0 V battery is 150 kQ 3 3 V Main Power FDV302P p channel Rabbit 4000 RESOUT Figure 37 5 Switching Circuit for VBATIO Pin Table 37 10 shows the typical current consumption for these pins while the remainder of the Rabbit 6000 is powered down Table 37 10 Typical Battery Backed Current Consumption 40 C to 85 C Pin Voltage Current VBAT 12 determined to be VBATIO 1 2 V determined Ra
370. r x 0 7 PAxCR 0x04B0 x W xxx00000 Rabbit 6000 User s Manual digi com 8 2 Dependencies 8 2 1 Pins Parallel Port A uses pins PAO through PA7 These pins can be used as follows General purpose 8 bit data input write 0x080 to SPCR General purpose 8 bit data output write 0x084 to SPCR Slave port data bus write 0x088 to SPCR External I O data bus write 0 08 to SPCR All Parallel Port A bits are inputs at startup or reset Drive strength slew rate and the pullup down resistor status are selectable via PAxCR See the associated peripheral chapters for details on how they use Parallel Port A 8 2 2 Clocks 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 Rabbit 6000 User s Manual digi com 96 8 3 Operation The following steps explain how to set up Parallel Port A 1 Select the desired mode using SPCR 2 If a particular drive strength slew rate or pullup down resistor status is desired for a Parallel Port A pin set that in the appropriate PAxCR 3 If the slave port or external I O bus is selected refer to the chapters for those peripherals for further setup Once Parallel Port A is set up data can be read or written by access
371. r 1 to increment decrement 01 Quadrature Decoder 1 inputs from Parallel Port D bits 1 and 0 10 Quadrature Decoder 1 inputs from Parallel Port E bits 1 and 0 11 Quadrature Decoder 1 inputs from Parallel Port E bits 5 and 4 1 0 00 Quadrature Decoder interrupts are disabled 01 Quadrature Decoder interrupt use Interrupt Priority 1 10 Quadrature Decoder interrupt use Interrupt Priority 2 11 Quadrature Decoder interrupt use Interrupt Priority 3 QuadDecodeCountRegister QDC1R Address 0x0094 QDC2R Address 0x0096 Bit s Value Description The current value of bits 7 0 of the Quadrature Decoder counter is n penu reported Quad Decode Count High Register QDC1HR Address 0x0095 QDC2HR Address 0x0097 Bit s Value Description 7 2 Read These bits are reserved and will always read as zeros The current value of bits 9 8 of the Quadrature Decoder counter is ne ia reported Rabbit 6000 User s Manual digi com 339 30 PULSE WIDTH MODULATOR 30 1 Overview The Pulse Width Modulator PWM consists of a 10 bit free running counter and four width registers A PWM output consists of a train of periodic pulses within a 1024 count frame with a duty cycle that varies from 1 1024 to 1024 1024 Each PWM output is high for n 1 counts out of the 1024 clock count cycle starting when the counter is 0 where n is the val
372. r Channel 0 for conversion 001 Select A D Converter Channel 1 for conversion 010 Select A D Converter Channel 2 for conversion 011 Select A D Converter Channel 3 for conversion 100 Select A D Converter Channel 4 for conversion 101 Select A D Converter Channel 5 for conversion 110 Select A D Converter Channel 6 for conversion 111 Select A D Converter Channel 7 for conversion 3 2 00 Floating reference 01 Internal reference 0 1 VDDA 0 9VDDA 10 External reference REF and REF pins 11 Internal reference rail to rail 1 This bit is reserved and should be written as zero Reads always return Zero 0 0 No conversion start This bit always returns zero during read Start conversion command using the accompanying channel selection 1 This command is ignored while in the continuous conversion mode This command can by issued while another conversion is running for maximum throughput Rabbit 6000 User s Manual digi com 246 ADC Conirol Register ADCCR Address 0x0544 Bit s Value Description 7 0 Use peripheral clock as multiplexed A D converter clock source 1 Use PD4 as multiplexed A D converter clock source 6 4 000 Clock divided by 2 001 Clock divided by 4 010 Clock divided by 8 011 Clock divided by 16 100 Clock divided by 32 101 Clock divided by 64 110 Clock divided by 128 111 Clock divided by 256 3 This bit is reserved and should be written
373. r High Register SADHR Address 0x00C7 SBDHR Address 0x00D7 SCDHR Address 0x00E7 SDDHR Address 0x00F7 Bit s Value Description 7 0 Disable the serial port divider and use the output of Timer A to clock the serial port Enable the serial port divider and use its output to clock the serial port 1 The serial port divider counts modulo n 1 and is clocked by the peripheral clock 6 0 Seven MSBs of the divider that generates the serial clock for this channel Rabbit 6000 User s Manual digi com 199 20 SERIAL PORTS E F 20 1 Overview Serial Ports E and F are identical to each other and their asynchronous operation is identical to that of Serial Ports A D except for the source of the data clock and the transmit receive and clock pins Each serial port can be used in the asynchronous or the HDLC mode with an internal or external HDLC mode clock In the asynchronous mode either 7 or 8 data bits can be transferred and both a parity bit and or ninth data bit can be appended as well Parity and the ninth data bits are also detected when they are received The asynchronous mode is full duplex The transmit and receive buffers of Serial Ports E and F have 4 bytes each this reduces the inter rupt overhead requirements because an interrupt does not have to be generated as often A serial port interrupt may be generated whenever at least one byte is available in the receive buffer or whenever a byte i
374. r using the already loaded register values by writing to DMCSLR DMCSHR The following steps explain how to set up a DMA channel 1 Select the DMA transfer and interrupt priorities by writing to DMCR 2 Select the DMA channel priority and maximum burst size by writing to DCSTCR If not using the bus interleaving mode use DMTCR instead and include the minimum clocks between bursts as well 3 If using an interrupt write the interrupt vector for the interrupt service routine to the external inter rupt table 4 If using an external DMA request enable an external request line by writing to DMROCR or DMRICR 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 Rabbit 6000 User s Manual digi com 256 5 If using an internal timed DMA transfer enable the internal timed transfer request by writing to DTRCR Select the divider value by writing to DTRDLR and DTRDHR Note that this enable will be logical ANDed to any internal DMA enables if the DMA transfer is to from an internal peripheral 6 Select a byte to terminate the transfer on by writing to the appropriate DyTBR and DyTMR regis ters 7 The desired control length and address registers should be written to a buffer descriptor or descrip tors in memory if not done already Several automatic options auto increment auto decrement spe cial peri
375. ral The USB peripheral requires a 48 MHz clock for proper operation Rabbit 6000 User s Manual digi com 16 2 1 1 Block Diagram XTL_20MO Wi Fi PLL XTL_20MI XTL 48MO XTL 48MI XTL 25MO XTL 25MI RN Det FIM Clock HSO CLK HSI CPU Clock Peripheral Clock GOCR HAM by 2 Real Time Clock Periodic Interrupt Asynch Serial Bootstrap Watchdog Timer 2 1 2 Registers Register Name Mnemonic I O Address R W Reset Global Control Status Register GCSR 0x0000 R W 11000000 Global Clock Modulator 0 Register GCMOR 0 000 W 00000000 Global Clock Modulation 1 Register GCMIR 0x000B W 00000000 Global Clock Double Register GCDR 0x000F R W 00000000 Master System Configuration Register MSCR 0x0434 R W 00000000 Master System Status Register MSSR 0x0435 R W 00000x00 Rabbit 6000 User s Manual digi com 17 2 2 Dependencies 2 2 1 I O Pins The main Wi Fi Ethernet and USB clocks contain a bypassable internal oscillator so either a crystal or an external clock input can be used The selection of a crystal or an external signal for the main oscillator is determined by the state of the CFG pins on startup and by the Master System Status Register MSSR The Ethernet clock source main clock or PHY oscillator is selected in the Master System Configuration Reg ister MSCR Table 2 1 lists the pins assigned to each clock and how they are controlled Table 2 1 Clock Pi
376. rallel Port inis 156 IDterrupts nennen 392 priority 83 393 2222220 340 344 345 m as I 389 example ISR ananassa 345 PUD USE ua 392 Quadrature Decoder 334 336 register descriptions sse 395 example ISR 337 mex 391 Serial Ports 189 input capture channels 4 322 Serial Ports E F equis prendi 204 block diagram 2 Slave 216 218 221 clocks SS example ISR 221 dependencies Em system management 42 45 46 Interrupts TINETA sun yunan n u Sah aute 162 165 example ISR example ISR 4 22 2222 166 load parallel port output registers 322 Timet uuu sua asua naa Pete ae eee 172 measure pulse widths sss 322 example ISR 172 Imodes s ug gue ct 322 imet CE IHRER EE US 179 180 input capture mode 322 example ISR 2 180 input count mode 0 90 322 USB host HQ 319 320 326 input capture mode sese 327 L input count mode 0 0 ee eee a 327 16 D 322
377. ranslation Rabbit 6000 User s Manual digi com 70 Memory Bank x Control Register MBOCR Address 0x0014 MB1CR Address 0x0015 MB2CR Address 0x0016 MB3CR Address 0x0017 Bit s Value Description 7 6 00 Four five for writes wait states for accesses in this bank 01 Two three for writes wait states for accesses in this bank 10 One two for writes wait states for accesses in this bank 11 Zero one for writes wait states for accesses in this bank 5 0 Pass bank select address MSB for accesses in this bank 1 Invert bank select address MSB for accesses in this bank 4 0 Pass bank select address LSB for accesses in this bank 1 Invert bank select address LSB for accesses in this bank 3 2 00 OEO and WEO are active for accesses in this bank 01 OE1 and WE1 are active for accesses in this bank 10 OEO only is active for accesses in this bank 1 read only Transactions are normal in every other way 11 1 only is active for accesses in this bank i e read only Transactions are normal in every other way 1 0 00 CSO is active for accesses in this bank 01 CS1 is active for accesses in this bank 10 CS2 is active for accesses in this bank CS3 internal memory is active for accesses in this bank When 11 standalone operation is selected by strapping the SCFG pin high this bit combination is forced for MBOCR only Rabbit 6
378. ration can lead to old data being written to PDDR To alleviate this potential problem each bit of the port can be written individ ually using a separate address for each bit The drive strength and slew rate can be individually controlled for each Parallel Port D pin In addition a 75 kO pullup or pulldown resistor can be enabled on each pin Note that it is possible for either Flexible Interface Module to use any of the parallel ports See Chapter 33 for more information Table 11 1 Parallel Port D Pin Alternate Output Functions Pin Name Alt Out 0 Alt Out 1 Alt Out 2 Alt Out 3 PD7 7 17 PWM3 SCLKC PD6 TXA 16 PWM2 TXE PD5 IA6 I5 PWMI RCLKE PDA TXB I4 PWMO TCLKE PD3 7 TIMER C3 SCLKD PD2 SCLKC 12 TIMER C2 TXF PD1 IA6 TIMER RCLKF PDO SCLKD 10 TIMER CO TCLKF NOTE 1A6 and 7 are address bits for External I O Rabbit 6000 User s Manual digi com 113 Table 11 2 Parallel Port D Pin Alternate Input Functions Pin THU DMA E een PD7 yes RXA RXE PD6 E 5 yes RXB RCLKE PD4 TCLKE yes RXC RXF DREQI QD2A PD2 ES SCLKC DREQO QD2B PD1 yes RXD RCLKF QDIA PDO SCLKD TCLKF INTO QD1B Rabbit 6000 User s Manual digi com 114 11 11 Block Diagram Parallel Port D PDFR PDALR PDAHR PDDCR PDDR
379. rature Input WI T1 VRXQ Input Quadrature Input Ul VBG Input A D Ext Bandgap V3 2 AD_RSET Output A D resistor W3 R2 ITXI Output Inphase Output U8 ITXI Output Inphase Output Y10 U7 ITXQ Output Quadrature Output Y13 U10 ITXQ Output Quadrature Output Y12 U9 COMP Bidirectional D A Compensation V13 P10 DA_RSET Bidirectional D A resistor U12 P9 Analog S_VIN Input RSSI A D Input Y20 U15 S_AD_REF Input RSSI A D Top Ref W20 P14 S_AD_REF Input RSSI A D Bottom Ref W19 R14 IN7 Y14 U11 IN6 U13 T11 IN5 W14 R11 IN4 V14 P11 Input A D Inputs IN3 Y15 U12 IN2 U14 T12 IN1 W15 R12 INO Y16 P12 MUXOUT Output Multiplexer Output Y17 U13 VIN Input Actual ADC Input Y18 U14 REF Input A D Top Ref V16 T14 REF Input A D Bottom Ref V15 T13 XTL_48MI Input H1 Al USB 48MHz Crystal XTL 48MO Bidirectional J1 Bl USB D AE MI D1 Bidirectional USB Data D L1 El Rabbit 6000 User s Manual digi com 440 APPENDIX A PARALLEL PORT PINS WITH ALTERNATE FUNCTIONS A 1 Alternate Parallel Port Pin Outputs Table A 1 Alternate Parallel Port A and B Pin Outputs Alternate Output Options 3 Serial Clock Exigrnal O Slave Port Bus PA 7 0 ID 7 0 SD 7 0 PB7 IA5 SLVATTN PB6 4 SCS PBS IA3 SAI PB4 IA2 SA0 PB3 IA1 SRD PB2 SWR SCLKA 7 PBO SCLKB IA6 Rabbit 6000 User s Manual rabbit com 441 Table A 2 Alternate
380. recommended clock and memory configurations for both 8 bit and 16 bit exter nal memory devices in the 10 705 access time range To calculate the required number of Wait states for a given memory access time and a known CPU clock frequency use the following formula round the result up to the next integer Wait states memory access time 10nS CPU clock cycle time 2 Table 37 8 Some Recommended Clock Memory Configurations Input Frequency Internal Frequency 223 2 2 Recommended Memory Timing Optimal Use 10 ns 2 wait states 12 ns 3 wait states 25 200 0000 15 ns 3 wait state 10 ns or faster PLL 45 ns 9 wait states devices 55 ns 11 wait states 70 ns 14 wait states 10 ns 1 wait states 12 ns 2 wait states 25 150 0000 15 ns 2 wait state 10 ns or faster PLL 45 ns 7 wait states devices 55 ns 8 wait states 70 ns 10 wait states 12 ns 1 wait states 100 0000 15 ns 1 wait state 12 ns 0 ns or faster 25 PLL 45 ns 4 wait states 55 ns 5 wait states 70 ns 6 wait states 12 ns 0 wait states 38 4736 15 ns 1 wait state 44 2368 doubler 45 ns 3 wait states 12 ns devices 55 ns 4 wait states 70 ns 5 wait states 15 ns 0 wait states 73 7280 45 ns 2 wait states 864 1 d een doubler 55 ns 3 wait states Sas devices 70 ns 4 wait states 36 8640 45 ns 0 wait states 18 4320 double 55 ns wait state 45 ns devices 70 ns 1 wait state
381. register on the next rising edge of the peripheral clock Parallel Port E Bit 4 Register PEB4R Address 0x007C Bit s Value Description 7 5 3 0 These bits are ignored The port buffer bit 4 is written with the value of this bit The port buffer 4 Write will be transferred to the port output register on the next rising edge of the peripheral clock Parallel Port E Bit 5 Register PEB5R Address 0x007D Bit s Value Description 7 6 4 0 These bits are ignored The port buffer bit 5 is written with the value of this bit The port buffer 5 Write will be transferred to the port output register on the next rising edge of the peripheral clock Rabbit 6000 User s Manual digi com 134 Parallel Port E Bit 6 Register PEB6R Address 0x007E Bit s Value Description 7 5 0 These bits are ignored The port buffer bit 6 is written with the value of this bit The port buffer 6 Write will be transferred to the port output register on the next rising edge of the peripheral clock Parallel Port E Bit 7 Register PEB7R Address 0x007F Bit s Value Description 6 0 These bits are ignored The port buffer bit 7 is written with the value of this bit The port buffer T Write will be transferred to the port output register on the next rising edge of the peripheral clock Parallel Port Ex Control Register PEOCR Address 0x04F0 PE1CR
382. rial Port x Status Register SESR Address 0x00CB SFSR Address 0 000 Asynchronous Mode Only Bit s Value Description 7 0 The receive data register is empty l There is a byte in the receive buffer The serial port will request an interrupt while this bit is set The interrupt is cleared when the receive buffer is empty 6 0 The byte in the receive buffer is data received with a valid stop bit l The byte in the receive buffer is an address or a byte with a framing error If an address bit is not expected and the data in the buffer is all zeros this is a break 5 0 The receive buffer was not overrun 1 The receive buffer was overrun This bit is cleared by reading the receive buffer 4 0 The byte in the receive buffer has no parity error or was not checked for parity 1 The byte in the receive buffer had a parity error 3 0 The transmit buffer is empty The transmit buffer is not empty The serial port will request an interrupt when l the transmitter takes a byte from the transmit buffer Transmit interrupts are cleared when the transmit buffer is written or any value which will be ignored is written to this register 2 0 The transmitter is idle The transmitter is sending a byte An interrupt is generated when the transmitter 1 clears this bit which occurs only if the transmitter is ready to start sending another byte and the transmit buffer is empty 1 0 00 These bits are always zero in the asynchronous mode Rabbit
383. ripheral clock from the main clock 011 Processor clock from the main clock divided by 2 Peripheral clock from the main clock divided by 2 100 Processor clock from the 32 kHz clock optionally divided via GPSCR Peripheral clock from the 32 kHz clock optionally divided via GPSCR Processor clock from the 32 kHz clock optionally divided via GPSCR 101 Peripheral clock from the 32 kHz clock optionally divided via GPSCR The main clock is disabled 110 Processor clock from the main clock divided by 4 Peripheral clock from the main clock divided by 4 111 Processor clock from the main clock divided by 6 Peripheral clock from the main clock divided by 6 1 0 00 Periodic interrupts are disabled 01 Periodic interrupts use Interrupt Priority 1 10 Periodic interrupts use Interrupt Priority 2 11 Periodic interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 48 Real Time Clock Control Register RTCCR Address 0 0001 Bit s Value Description No effect on the real time clock counter or disable the byte increment 7 0 0x00 function or cancel the real time clock reset command Arm the real time clock for reset or byte increment This command must 0x40 be written prior to either the real time clock reset command or the first byte increment write 0x80 Reset all six bytes of the real time clock counter to 0x00 The reset must be preceded by writing 0x40 to arm the reset f
384. rnate output 0 IA7 01 Parallel Port D bit 3 alternate output 1 13 10 Parallel Port D bit 3 alternate output 2 TIMER C3 11 Parallel Port D bit 3 alternate output 3 SCLKD 5 4 00 Parallel Port D bit 2 alternate output 0 SCLKC 01 Parallel Port D bit 2 alternate output 1 12 10 Parallel Port D bit 2 alternate output 2 TIMER C2 11 Parallel Port D bit 2 alternate output 3 TXF 3 2 00 Parallel Port D bit 1 alternate output 0 IA6 01 Parallel Port D bit 1 alternate output 1 I1 10 Parallel Port D bit 1 alternate output 2 TIMER C1 11 Parallel Port D bit 1 alternate output 3 RCLKF 1 0 00 Parallel Port D bit 0 alternate output 0 SCLKD 01 Parallel Port D bit 0 alternate output 1 IO 10 Parallel Port D bit 0 alternate output 2 TIMER 11 Parallel Port D bit 0 alternate output 3 TCLKF Rabbit 6000 User s Manual digi com 119 Parallel Port D Alternate High Register PDAHR Address 0x0063 Bit s Value Description 7 6 00 Parallel Port D bit 7 alternate output 0 7 01 Parallel Port D bit 7 alternate output 1 17 10 Parallel Port D bit 7 alternate output 2 PWM3 11 Parallel Port D bit 7 alternate output 3 SCLKC 5 4 00 Parallel Port D bit 6 alternate output 0 TX A 01 Parallel Port D bit 6 alternate output 1 I6 10 Parallel Port D bit 6 alternate output 2 PWM2 11 Parallel Port D bit 6 alternate output 3 TXE 3 2 00 Parallel Port D
385. roper procedure is to clear GCM1R wait for 500 clocks set GCMOR and then enable the spreader by writing a 1 to bit 7 of GCMIR The spectrum spreader is applied to the main clock before the clock doubler so if both are enabled there will be additional asymmetry between alternate clock cycles If the clock doubler is used the spectrum spreader affects every other cycle and reduces the clock high time If the doubler is not used then the spreader affects every clock cycle and the clock low time is reduced Rabbit 6000 User s Manual digi com 23 2 3 4 Clock Doubler The clock doubler allows a lower frequency crystal to be used for the main oscillator and to provide an added range over which the clock frequency can be adjusted The clock doubler is controlled via the Global Clock Double Register GCDR The clock doubler uses an on chip delay circuit that must be programmed by the user at startup if there is a need to double the clock Table 2 5 lists the recommended delays in GCDR for various oscillator or crystal frequencies Table 2 5 Recommended Delays Set In GCDR for Clock Doubler Recommended GCDR Value Frequency Range OxOF lt 7 3728 MHz OxOB 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 271 4144 MHz Rabbit 6000 User s Manual digi com 24 When the clock doubler is used and there is no subsequent divisi
386. rrupt service routine to the external interrupt table 2 Configure to select which pins are enabled for external interrupts what edges are detected on each pin and the interrupt priority 3 When an interrupt occurs for interrupt 0 or 1 read PDDR and or PEDR to determine which pin has a signal if more than one pin is enabled for a given external interrupt 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 ret Rabbit 6000 User s Manual digi com 91 7 5 Register Descriptions Interrupt x Control Register 00 Address 0 0098 HCR Address 0x0099 Bit s Value Description 7 6 00 Parallel Port D low nibble interrupt disabled 01 Parallel Port D low nibble interrupt on falling edge 10 Parallel Port D low nibble interrupt on rising edge 11 Parallel Port D low nibble interrupt on both edges 5 4 00 Parallel Port E high nibble interrupt disabled 01 Parallel Port E high nibble interrupt on falling edge 10 Parallel Port E high nibble interrupt on rising edge 11 Parallel Port E high nibble interrupt on both edges 3 2 00 Parallel Port E low nibble interrupt disabled 01 Parallel Port E low nibble interrupt on falling edge 10 Parallel Port E low nibble interrupt
387. rs properly or updating semaphores Rabbit 6000 User s Manual digi com 83 6 2 Operation To ensure proper operation all interrupt handler routines should be written according to the following guidelines Push all registers to be used by the routine onto the stack before use and pop them off the stack before returning from the ISR Keep the ISR as short and fast as possible The use of assembly code is strongly recommended e Ifthe ISR will run for some time lower the interrupt priority as soon as possible within the ISR to allow other interrupts to occur A number of special rules apply to interrupts when operating in the system user mode please see the appropriate chapter for more details 6 3 Interrupt Tables Table 6 1 shows the structure of the internal interrupt vector table The first column is the vector address offset within the table 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 Table 6 1 Internal Interrupt Vector Table Structure Offset 0x0000 Offset 0x0100 Offset 0x00 Periodic Interrupt Network Port C Wi Fi 0x10 Secondary Watchdog Network Port D USB 0x20 RST 10 0x30 RST 18 FIMA 0x40 RST20 FIMB 0x50 RST 28 0 60 Syscall Instruction 8 Channel A D Converter 0x70 RST
388. rt E Data Register SEDR 0 00 8 R W Serial Port Address Register SEAR 0 00 9 W Serial Port E Long Stop Register SELR 0 00 w XXXXXXXX Serial Port E Status Register SESR 0x00CB R 0xx00000 Serial Port E Control Register SECR 0x00CC R W xx000000 Serial Port E Extended Register SEER 0x00CD R W 00000000 Serial Port E Divider Low Register SEDLR 0x00CE Serial Port E Divider High Register SEDHR Ox00CF R W Oxxxxxxx Serial Port F Data Register SFDR 0 0008 R W Serial Port F Address Register SFAR 0 0009 W Serial Port F Long Stop Register SFLR 0x00DA W XXXXXXXX Serial Port F Status Register SFSR 0x00DB R 0xx00000 Serial Port F Control Register SFCR 0x00DC R W xx000000 Serial Port F Extended Register SFER 0x00DD R W 00000000 Serial Port F Divider Low Register SFDLR 0x00DE Serial Port F Divider High Register SFDHR 0 00 Rabbit 6000 User s Manual digi com 202 20 2 Dependencies 20 2 1 I O Pins Serial Port E can transmit on parallel port pins PC6 PD6 PE6 or PH6 and can receive on pins PC7 PD7 or PE7 If the HDLC mode is enabled the transmit serial clock is either transmitted or received on PC4 PD4 or PE4 while the receive serial clock is either transmitted or received on 5 PDS or PES The transmit and receive clocks can also be transmitted on PH4 or PH
389. running in lower CPU frequency or sleepy modes See Section 5 3 1 Internal RAM Rabbit 6000 User s Manual digi com 12 1 5 Comparing Rabbit Microprocessors The Rabbit 2000 Rabbit 3000 Rabbit 4000 Rabbit 5000 and Rabbit 6000 features are compared below Feature Rabbit 6000 Rabbit 5000 Rabbit 4000 Rabbit 3000 Rabbit 2000 ii 200 MHz 100 MHz 60 MHz 55 5 MHz 30 MHz industrial s peed 200 MHz 100 MHz 60 MHz 58 8 MHz 30 MHz commercial Maximum Crystal Frequency 24 42 MHz Main Oscillator may be crystal increased internally up to 20 200 MHz TUBIS maximum clock speed ext clock 29 KEZ Crystal External External External External Internal Oscillator Operating Voltage core 12 10 18V 10 18V 10 12 109 18V 10 1 8V 10 33V 10 5 0V 10 P ps 3 3V 109 33 V 1095 3 3 V 10 Maximum I O Input Voltage 3 6 V 3 6 V 3 6 V 5 5 V 5 5 V 0 37 mA MHz 0 57 mA MHz Current Consumption T bM s 0 35 mA MHz 2 mA MHz 4 mA MHz 32kHz 200MHz Orand a Pran 3 3 V 3 3 V 5 V Ethernet Ethernet disabled disabled Number of Package Pins 292 233 289 196 128 128 100 Size of Package LQFP 16x16x1 5 16x16x 1 5 24x 18 x 3 PQFP mm mm mm N A Spacing Between 0 4 mm 0 4 mm 0 65 mm Package Pins 16 mils 16 mils 26 mils Size of Package BGA mm 17x17x1 3 15x15x1 4 10x10x1 2 10x
390. rx 3 ns 6 ns Data Setup Time 1 ns Data Hold Time Thold 0 ns 37 3 2 Memory Writes Table 37 5 Memory Write Time Delays VDDcore 1 2 V 10 VDDjo 3 3 V 10 40 C to 85 C Parameter Symbol Min Typ Max Clock to Address Delay Taar 3ns 8 ns Clock to Memory Chip Select Delay Tcsx 3 ns 6 ns Clock to Memory Write Strobe Delay TwEx 3ns 6 ns High Z to Data Valid Relative to Clock Tpvuz 3ns 8 ns Data Valid to High Z Relative to Clock Tpvuz 3ns 8 ns Rabbit 6000 User s Manual digi com 419 Memory Read no wait states k ri lt r Memory Write no extra wait states k T1 Tw k T2 4 CLK A 19 0 ICSx Figure 37 1 Memory Read and Write Cycles Rabbit 6000 User s Manual digi com 420 Memory Read no wait states Memory Write no extra wait states CLK 9 0 valid Figure 37 2 Memory Read and Write Cycles Early Output Enable and Write Enable Timing Rabbit 6000 User s Manual digi com 421 37 3 3 External I O Reads Table 37 6 External I O Read Time Delays VDDcore 1 2 V 10 VDDjo 3 3 V 10 TA 40 C to 85 C Parameter Symbol Min Typ Max Clock to Address Delay 4 ns 8 ns Clock to Memory Chip Select Delay Tcsx 3ns 6 ns Clock to I O Chip Select Delay Tiocsx 4ns 10 ns Clock to I O Read Strobe Delay 3 ns 7 ns Clock to I O Buffer Enable Delay TBUFE
391. s Register Function SACR SBCR SCCR Select a Parallel Port E pin as serial data and SDCR SECR SFCR optional clock input Select a Parallel Port E pin as a start stop condition for Input Capture input Select a Parallel Port E pin as a Quadrature COUR Decoder input Select a Parallel Port E pin as an external IOCR interrupt input Select a Parallel Port E pin as an external DMA DMR0CR DMRICR request input SPCR Select slave chip select on PE7 IHSR IHTR 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 PES PE4 or PEO see Chapter 7 for more details Rabbit 6000 User s Manual digi com 129 12 3 Operation The following steps must be taken before using Parallel Port 1 Select the desired input output direction for each pin via PEDDR 2 Select high low or open drain functionality for outputs via PEDCR 3 If a particular drive strength slew rate or pullup down resistor status is desired for a Parallel Port E pin set that in the appropriate PExCR 4 If an alternative peripheral output function is desired for a pin select it via PEALR or PEAHR and then enable it via PEFR Refer to the appropriate peripheral chapter for further use of that pin Once the port is set up data can be read or written by accessing PEDR Read PEDR
392. s 0x00F5 Bit s Value Description 7 0 Normal clocked serial operation 1 Timer synchronized clocked serial operation 6 0 Timer synchronized clocked serial uses Timer B1 1 Timer synchronized clocked serial uses Timer B2 5 4 00 Normal clocked serial clock polarity inactive high Internal or external clock 01 Normal clocked serial clock polarity inactive low Internal clock only 10 Inverted clocked serial clock polarity inactive low Internal or external clock 11 Inverted clocked serial clock polarity inactive high Internal clock only 3 0 Normal bit order LSB first for transmit and receive 1 Reverse bit order MSB first for transmit and receive 2 0 Serial clock input mode only from Parallel Port D SCER SDER only 1 Serial clock input mode only from Parallel Port E 5 and SDER only 1 0 No effect on transmitter 1 Terminate current clocked serial transmission No effect on buffer 0 0 No effect on receiver 1 Terminate current clocked serial reception Serial Port x Divider Low Register SADLR Address 0x00C6 SBDLR Address 0x00D6 SCDLR Address 0x00E6 SDDLR Address 0x00F6 Bit s Value Description Eight LSBs of the divider that generates the serial clock for this channel 7 0 This divider is not used unless the MSB of the corresponding SxDHR is set to one Rabbit 6000 User s Manual digi com 198 Serial Port x Divide
393. s but not the interrupt enable bits are cleared by the read Read of this register as is the Input Capture Interrupt 7 4 0 The corresponding Input Capture interrupt is disabled Write 1 The corresponding Input Capture interrupt is enabled 3 0 No effect on Input Capture 2 counter This bit always reads as zero Write 1 Reset Input Capture 2 counter to all zeros and clears the rollover latch 2 0 No effect on Input Capture 1 counter This bit always reads as zero Write 1 Reset Input Capture 1 counter to all zeros and clears the rollover latch 1 0 Disable Input Capture 2 interrupt on roll over to all zeros 1 Enable Input Capture 2 interrupt on roll over to all zeros 0 0 Disable Input Capture 1 interrupt on roll over to all zeros 1 Enable Input Capture 1 interrupt on roll over to all zeros Rabbit 6000 User s Manual digi com 328 Input Capture Control Register ICCR Address 0x0057 Bit s Value Description 7 0 Input Capture operation for Input Capture 2 1 Input Count operation for Input Capture 2 6 0 Input Capture operation for Input Capture 1 1 Input Count operation for Input Capture 1 5 2 These bits are reserved and should be written with zero 1 0 00 Input Capture interrupts are disabled 01 Input Capture interrupt use Interrupt Priority 1 10 Input Capture interrupt use Interrupt Priority 2 11 Input Capture interrupt use Interrupt Priority 3 Rabbit 6
394. s 0 1 of ADCLR When complete read the rest of the A D converter result in ADCMR 23 4 2 Continuous Read The following steps must be taken to operate the multiplexed A D converter in the continuous read mode 1 Select the clock source and enable the multiplexed A D converter by writing to ADCCR 2 Enable the continuous read mode by setting bit 7 of ADCCSR 3 To get a particular channel reading check bits 0 1 of the ADCxLR that corresponds to that channel If the conversion is complete read ADCxMR as well to get the full reading 23 4 3 Handling Interrupts The following steps explain how an interrupt is used 1 Write the vector to the interrupt service routine to the internal interrupt table 2 Configure ADCR to select the interrupt priority note that interrupts will be enabled once this value is set this step should be done last 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 Rabbit 6000 User s Manual digi com 243 23 5 Sample Circuit 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 MUX ADC ADS_D3 3V ANALOG INPUTS Optional External Voltage References Custom signal condi
395. s at Priority 3 11 DMA transfers at Priority 3 DMA transfers at any time 1 0 00 DMA interrupts are disabled 01 DMA interrupts use Interrupt Priority 1 10 DMA interrupts use Interrupt Priority 2 11 DMA interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 266 DMA Master Timing Control Register DMTCR Address 0x0105 Bit s Value Description 7 6 Ox Fixed DMA channel priority Higher channel number has higher priority 10 Rotating DMA channel priority Priority rotates highest channel number to lowest channel number after every byte is transferred Rotating DMA channel priority Priority rotates highest channel number to lowest channel number after the current channel request is serviced 5 3 000 Maximum one byte per burst 001 Maximum two bytes per burst 010 Maximum three bytes per burst 011 Maximum four bytes per burst 100 Maximum eight bytes per burst 101 Maximum 16 bytes per burst 110 Maximum 32 bytes per burst 111 Maximum 64 bytes per burst 2 0 000 Minimum 12 clocks between bursts 001 Minimum 16 clocks between bursts 010 Minimum 24 clocks between bursts 011 Minimum 32 clocks between bursts 100 Minimum 64 clocks between bursts 101 Minimum 128 clocks between bursts 110 Minimum 256 clocks between bursts 111 Minimum 512 clocks between bursts Rabbit 6000 User s Manual digi com 267 DMA Ma
396. s shifted out of the transmit buffer The status of each serial port is available in its Serial Port Status Register SxSR and contains information on whether a received byte 15 available the receive buffer was overrun a parity error was received the transmit buffer is empty or busy sending a byte and the state of the ninth data bit whether it is an address bit or a stop bit Serial Ports E and F support the HDLC mode with either an internal or an external clock separate pins are used for the transmit and receive clocks The HDLC packet flag encapsulation flag escapes and CRC calculation and check are handled automatically by the processor The serial port can detect end of frame short frame and CRC errors Interrupts are generated by the recep tion of an end of frame at the end of a transmission of a CRC by an abort sequence or by a clos ing flag Transmit and receive operations are essentially automatic The standard CRC CCITT polynomial xl 1 is implemented for the CRC with the generator and checker preset to all ones It is possible to send packets with or without a CRC appended It is also possible to select whether an abort or flag will be transmitted if the transmitter underflows A packet under transition can be aborted and the abort pattern sent The idle condition of the line can be flags or all ones Several types of data encoding are available in HDLC mode NRZ NRZI biphase level Man chester biphas
397. s without having to reload the initial address for the DMA buffer descriptor sequence Circular Queue Initial Buffer Descriptor Address 16 bytes Interrupt Link Address Buffer Descriptor 6 bytes Interrupt Link Address Buffer Descriptor 16 bytes Interrupt Link Address The ping pong buffer where there are only two buffers is the simplest version of a circular queue The application can operate on one buffer while the other buffer is being loaded 24 3 5 5 Linked Array The linked array is simply a linked list of buffer arrays where the last buffer in each array is linked to the first buffer in the next array 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 Rabbit 6000 User s Manual digi com 262 24 3 6 DMA with Peripherals When the DMA is directed towards an internal I O address the DMA transfer request signals will be con nected as appropriate for that peripheral For example when a DMA transfer is performed to Serial Port D s data register the transfer request will be enabled whenever the serial port transmit buffer is empty and will be disabled whenever it is not 24 3 6 1 DMA with HDLC Serial Ports The HDLC serial ports receive special handing by the DMA When the DMA destination is Serial Port E s or Serial Port F s data register S
398. scriptors is set up adjacent in memory only the last buffer is set to halt on completion The last buffer is also typically set to interrupt on completion but other buffer descriptors in the array can also generate interrupts Buffer Array Initial Buffer Descriptor Address i 12 bytes Buffer Descriptor 12 bytes Buffer Descriptor 12 bytes Buffer Descriptor 12 bytes Interrupt The advantage of the buffer array is that its descriptors require less memory than a full 16 byte descriptor The simplest version of the buffer array is a double buffer which is frequently used to provide a reserve buffer in case the application is slow in handling the first buffer once received in this case both buffers are enabled to interrupt on completion Rabbit 6000 User s Manual digi com 260 24 3 5 3 Linked List 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 Linked List Initial Buffer Descriptor Address 16 bytes Link Address Buffer Descriptor 16 bytes Link Address Buffer Descriptor 16 bytes Interrupt Rabbit 6000 User s Manual digi com 261 24 3 5 4 Circular Queue A circular queue is a buffer array or linked list where the final buffer is linked back to the first buffer in the sequence This method allows for continuous reception of transfer
399. slew rate 222 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 00 No pullup or pulldown resistor 01 75 pullup resistor 10 75 pulldown resistor 11 75 keeper Rabbit 6000 User s Manual digi com 144 14 PARALLEL PORT G 14 1 Overview Parallel Port G is a byte wide port with each bit programmable for data direction and drive level These are simple inputs and outputs controlled and reported in the Port G Data Register PGDR All of the Parallel Port G pins have alternate output functions and all of them can be used as inputs to var ious on chip peripherals When used as outputs the Parallel Port G bits are buffered with the data written to PGDR transferred to the output pins on a selected timing edge Either the peripheral clock or the outputs of Timer 1 Timer or Timer 2 be used for this function with each nibble of the port having a separate select field to control this timing Each bit can either be programmed as open drain or driven high and low The drive strength and slew rate can be individually controlled for each Parallel Port G pin In addition a 75 kO pullup or pulldown resistor can be enabled on each pin Note that it is possible for either Flexible Interface Module to use any of the parallel ports See Chapter 33 for more information Table 14 1 Parallel Port G Pin Alternate Output
400. so 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 automatically recognizes internal I O addresses that support fly by transfers Operating the DMA with the USB peripheral is complicated by the fact that the USB controller needs access to a number of different data streams to and from memory There is a special control field in DxSCR to identify the two DMA channels dedicated to the USB controller one for reading from memory and one for writing to memory Only one channel can be enabled for each direction at a time No other DMA programming is required for the two DMA channels dedicated to the USB controller as the control ler handles all the other setup 24 1 1 Block Diagram DMA PD 3 2 Interrupt External p Interrupt rep iip Perclk 2 Timed Request Counter DTRCR Master Control DMCSLRIDMCSHR DMALLRIDMALMR DMHLRIDMHMR DMCR DMTCRIDCSTCR DMA Channel y Channel y State Machine DySCR DyCR DyLnR DyLAnR Channel Adresses DylAnR Buffer Complete Counter Buffer Unused Counter DyBUnR Termination Byte Detect DyTBR Rabbit 6000 User s Manual digi com 252 24 1 2 Registers
401. sor Bytes 0 7 are mapped to data 7 0 memory addresses 0 10 0 17 and bytes 8 15 are mapped to data memory addresses 0 90 0 97 These registers are read write for the main processor FIMB Port Expansion x Register FBPEOR Address 0x7017 FBPE1R Address 0x7018 FBPE2R Address 0x7019 FBPE3R Address 0x701A FBPE4R Address 0x701B FBPE5R Address 0x701C FBPE6R Address 0x701D FBPE7R Address 0x701E FBPE8R Address z 0x702F FBPE9R Address z 0x7020 FBPE10R Address z 0x7021 FBPE11R Address 0x7022 FBPE12R Address 0x7023 FBPE13R Address 0x7024 FBPE14R Address 0x7025 FBPE15R Address 0x7026 Bit s Value Description 7 0 User defined status bytes that are mapped to the data memory of the Flexible Interface Module processor Bytes 0 7 are mapped to data nd memory addresses 0x18 0x1F and bytes 8 15 are mapped to data only memory addresses 0 98 0 9 Rabbit 6000 User s Manual digi com 380 FIMB Code LSB Register FBCLR Address 0x7800 through Address 0x7BFF Bit s Value Description 7 0 FIMB code bits 7 0 FIMB Code MSB Register FBCMR Address 0x7C00 through Address Ox7FFF Bit s Value Description 7 6 These bits are unused 5 0 FIMB code bits 13 8 Master System Reset Register MSRR Address 0x0436
402. ssembly during break to allow timing the break condition 1 Inhibit character assembly during break One character all zeros with framing error at start and one character garbage at completion 0 This bit is ignored in the asynchronous mode Rabbit 6000 User s Manual digi com 214 Serial Port x Extended Register SEER Address 0x00CD SFER Address 0 0000 HDLC Mode Only Bit s Value Description 7 5 000 NRZ data encoding for HDLC receiver and transmitter 010 NRZI data encoding for HDLC receiver and transmitter 100 Biphase level Manchester data encoding for HDLC receiver and transmitter 110 Biphase space data encoding for HDLC receiver and transmitter 111 Biphase mark data encoding for HDLC receiver and transmitter 4 0 Normal HDLC data encoding 1 Enable RZI coding 4 bit cell IrDA compliant This mode can only be used with an internal clock and NRZ data encoding 3 0 Idle line condition is flags 1 Idle line condition is all ones 2 0 Transmit flag on underrun 1 Transmit abort on underrun 1 0 Separate HDLC external receive and transmit clocks 1 Combined HDLC external and transmit clock from transmit clock pin 0 This bit is ignored in HDLC mode Serial Port x Divider Low Register SEDLR Address 0x00CE SFDLR Address 0x00DE Bit s Value Description 7 0 Eight LSBs of the divider that generates the serial clock f
403. stable roughly 200 us after enabling the system PLL uses 32 kHz clock to generate delay 6 This bit is reserved and should be written as zero 5 0 Clock on chip 10 100 PHY from system oscillator Enable embedded oscillator in the internal 10 100 PHY If using this 1 option the oscillator must be enabled at least 500 ns before the PHY is enabled in ENPR This delay must be created in software 4 0 No reset of the internal 10 100 PHY Reads always return zero Write Reset the internal 10 100 PHY hardware This command must not be Gul 1 issued until at least 600 ms after the internal PHY has been enabled in y ENPR This delay must be created in software 3 2 00 FIMB clock is disabled 01 FIMB clock is identical to the CPU clock 10 This bit combination is reserved and should not be used FIMB clock from system PLL output Response to this setting may be 11 delayed until the PLL output is stable roughly 200 us after enabling the system PLL uses 32 kHz clock to generate delay 1 0 00 FIMA clock is disabled 01 FIMA clock is identical to the CPU clock 10 This bit combination is reserved and should not be used FIMA clock from system PLL output Response to this setting may be 11 delayed until the PLL output is stable roughly 200 us after enabling the system PLL uses 32 kHz clock to generate delay Rabbit 6000 User s Manual digi com 307 Enable Network Port Re
404. status is desired for a Parallel Port D pin set that in the appropriate PDxCR 4 If an alternative peripheral output function is desired for a pin select it via PDALR or PDAHR and then enable it via PDFR Refer to the appropriate peripheral chapter for further use of that pin Once Parallel Port D is set up data can be read or written by accessing PDDR Read PDDR to learn the current state of a Parallel Port D pin any value written to an input pin will not appear on that pin until that pin becomes an output 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 Rabbit 6000 User s Manual digi com 118 11 4 Register Descriptions Parallel Port D Data Register PDDR Address 0x0060 Bit s Value Description 7 0 Read current state of Parallel Port D pins PD7 PDO is reported The Parallel Port D buffer is written with this value for transfer to the Write Parallel Port D output register on the next rising edge of the port transfer clock The port transfer clock is established by PDCR Parallel Port D Alternate Low Register PDALR Address 0x0062 Bit s Value Description 7 6 00 Parallel Port D bit 3 alte
405. ster GCPU Address 0x002E Bit s Value Description 7 0 Program fetch as a function of the SMODE pins 2 1 Ignore the SMODE pins program fetch function 6 5 Read These bits report the state of the SMODE pins 4 0 00100 CPU identifier for this version of the chip Rabbit 6000 User s Manual digi com 52 Global Revision Register GREV Address 0x002F Bit s Value Description 7 0 Program fetch as a function of the SMODE pins Bend 1 Ignore the SMODE pins program fetch function 6 5 Read These bits report the state of the SMODE pins 4 0 00000 CPU identifier for this version of the chip Battery Backed Onchip Encryption RAM VRAMOO Address 0x0600 through through VRAM31 Address 0x061F Bit s Value Description 7 0 General purpose RAM locations Cleared by Intrusion Detect conditions Rabbit 6000 User s Manual digi com 53 5 MEMORY MANAGEMENT 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 Both 8 bit and 16 bit page mode devices are also supported In addition the Rabbit 6000 contains 1 MB of internal high speed RAM and 32 KB of b
406. ster Name Mnemonic 1 Address R W Reset USB Wrapper Register USBWR 0x1060 R W 00000010 Network Port D Wait Register NDWR 0x0433 R W 00000000 The Open Host Controller Interface registers use I O addresses ranging from 0x1000 to 0 1057 The official specification OpenHCI Open Host Controller Interface Specification for USB con tains full details of the registers and their proper use and is available from Compaq 27 2 Dependencies 27 2 1 I O Pins The USB port interface has four dedicated signal pins and two optional ones that are shared with parallel port pins all of which are listed in Table 27 1 Table 27 1 Network Port D Interface Section Signal Direction Function D Data Bidirectional Differential data D Clock XTL_48MI 48 MHz crystal input XTL 48 external clock input Optional USB_PWR PE2 Output External USB power control Control USB_OVR PE3 Input Overcurrent fault signal 27 2 2 Clocks The network port requires a 48 MHz clock input for proper full speed USB operation A 48 MHz crystal can be attached between XTL_48MI XTL 48MO or a 48 MHz clock can be applied directly to XTL_48MO 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
407. ster Request 0 Conirol Register DMROCR Address 0x0106 Bit s Value Description 7 6 00 External DMA Request 0 disabled 01 External DMA Request 0 enabled from Parallel Port PD2 10 External DMA Request 0 enabled from Parallel Port PE2 11 External DMA Request 0 enabled from Parallel Port 5 4 00 External DMA Request 0 falling edge triggered One transfer per request 01 External DMA Request 0 rising edge triggered One transfer per request 10 External DMA Request 0 active low Transfers continue while low 11 External DMA Request 0 active high Transfers continue while high 3 0 0000 External DMA Request 0 supplied to DMA Channel 0 0001 External DMA Request 0 supplied to DMA Channel 1 0010 External DMA Request 0 supplied to DMA Channel 2 0011 External DMA Request 0 supplied to DMA Channel 3 0100 External DMA Request 0 supplied to DMA Channel 4 0101 External DMA Request 0 supplied to DMA Channel 5 0110 External DMA Request 0 supplied to DMA Channel 6 0111 External DMA Request 0 supplied to DMA Channel 7 1000 External DMA Request 0 supplied to DMA Channel 8 1001 External DMA Request 0 supplied to DMA Channel 9 1010 External DMA Request 0 supplied to DMA Channel 10 1011 External DMA Request 0 supplied to DMA Channel 11 100 External DMA Request 0 supplied to DMA Channel 12 1101 External DMA Request 0 supplied to DMA Channel 13 11
408. t Convert on S VIN Converter megasamples s single ended signal convert on signal The actual conversion rates depend on the clock sources used each analog component can accept a clock from an external 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 Rabbit 6000 User s Manual digi com 227 Table 22 1 lists the detailed features for each analog component Table 22 2 Wi Fi Analog Component Specifications Analog Component Feature Specification Resolution 10 bits Max sample rate 40 megasamples sec Clock 40MHz Input Range Common mode 0 6 V 1 Wi Fi fast D A converter 0 Differential 0 5 V from common mode Wi Fi fast A D converter Operating Current Active 40 mA 12 V Standby 3 5mA 1 2 V Power down 10HA 1 2 V Nonlinearity Differential DNL 0 7 LSB typ Integral INL 1 2 LSB typ Resolution 10 bits Max sample rate 80 megasamples sec Clock 80 MHz Output Range 0 4 mA Output Loading Capacative 5 pF max Resistance 225 O max Output Voltage 0 2V to 1 45V Compliance Range Operating Current Active 13 mA 2 5 V Standby 0 7 mA 2 5V Power down lt 1luA 2 5 V Nonlinearity Differential DNL 0 5 LSB typ Integral INL 1 LSB typ Rabbit 6000 User s Manual digi com 228
409. t by the following formula Total Clocks 4 x Number of Bytes per Burst 7 for overhead 24 3 4 DMA Channel Priority 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 If at any point a channel with higher priority than the one currently transfer ring has a DMA request pending the current transfer will be suspended and the new channel s transfer will start With this setting DMA Channel 15 will always have priority over all other channels and DMA Channel 0 will transfer only if no other channels have pending requests The other two settings rotate the priority among channels as shown in Table 24 5 after the fifteenth rota tion the priority sequence restarts at the top of the table One option is to rotate priority after every byte analogous to the fixed priority setting The priority list is updated after each byte transferred and if a higher priority channel has a pending request the current transfer will be suspended and the new channel transfer will start The other option is to rotate after every burst this will guarantee that reasonable amounts of data are transferred by each channel before a switchover occurs There is a separate priority
410. t combination is reserved and must not be used 5 4 These bits are reserved and should be written with zeros System PLL loop divider value All zeros is not a valid value for the PLL loop divider The PLL output frequency is the input frequency divided by 4 0 the value of the PLL pre divider and multiplied by the value of the PLL loop divider Neither divider value should not be modified while the PLL is supplying the clock to the system Global Clock Modulator 1 Register GCM1R Address 0x000B Bit s Value Description 7 0 Disable the clock dither function The disable does not take effect until the dither pattern has returned to the 0 ns base delay value 1 Enable the clock dither function 6 5 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 3 0 pre divider Neither divider value should not be modified while the PLL is supplying the clock to the system Rabbit 6000 User s Manual digi com 29 Global Clock Double Register GCDR Address 0x000F Bit s Value Description 7 0 Disable system PLL 1 Enable system PLL Setting this bit does not select the system PLL as the clock source 6 5 These bits are reserved and should always be written with zeros 4 0 00000 The clock doubler circuit is disabled 00001 9 nS nominal Low time 00010 10 5 nS nominal Low time 00011 12 nS nominal Low time 00100 13 5 nS
411. t for relative address 0xD000 0xDFFF in WP Segment x 4 0 Disable 4 KB write protect for relative address OxC000 0xCFFF in WP Segment x 1 Enable 4 KB write protect for relative address 000 in WP Segment x 3 0 Disable 4 KB write protect for relative address 0xBOOO OxBFFF in WP Segment x 1 Enable 4 KB write protect for relative address 000 in WP Segment x 2 0 Disable 4 KB write protect for relative address 0XA000 0xAFFF WP Segment x 1 Enable 4 KB write protect for relative address 0XA000 0x AFFF in WP Segment x 1 0 Disable 4 KB write protect for relative address 0xX9000 0x9FFF in WP Segment x 1 Enable 4 KB write protect for relative address 0x9000 0x9FFF in WP Segment x 0 0 Disable 4 KB write protect for relative address 0xX8000 0x8FFF in WP Segment x 1 Enable 4 KB write protect for relative address 0x8000 0x8FFF in WP Segment x 79 Stack Limit Control Register STKCR Address 0x0444 Bit s Value Description These bits reserved and should be written with zeros 0 0 Disable stack limit checking 1 Enable stack limit checking Stack Low Limit Register STKLLR Address 0x0445 Bit s Value Description Lower limit for stack limit checking If a stack operation or stack relative 7 0 memory access is attempted at an address less than STKL
412. t is read in the status regis ter it is cleared and no further interrupt corresponding to that bit will be requested It is possible that one bit will cause an interrupt and then one or more additional bits will be set before the status register is read 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 Rabbit 6000 User s Manual digi com 162 16 1 1 Block Diagram Parallel Ports D E Control Timer B Timer C Serial Ports 7 12 Timer A8 Input Capture Timer 9 PWM i Quadrature Timer A10 Decoder i Timer B Timer A11 Timer C Timer Ax Input Clock gt Output Interrupt Ree Generation Tintore A1 AT Reload Register TATXR Rabbit 6000 User s Manual digi com 163 16 1 2 Registers Register Name Mnemonic I O Address R W Reset Timer A Control Status Register TACSR 0 00 0 00000000 Timer Prescale Register TAPR 0x00A1 R W 00000001 Timer A Extended Control Register TAECR 0x00A2 R W 00000000 Timer A Time Constant 1 Register TATIR 0x00A3 Timer Control Register TACR 0 00 4 00000000 Timer Time Constant 2 Register TAT2R 0 00 5 R W Timer A Time Constant 8 Register TAT8R 0x00A6 Timer A Time Constant 3 Register T
413. te 231 22 3 UO Pins eben 231 22 32 Clocks eene ens 231 22 4 teer tert epe nione 232 22 4 1 Fast A D Converter 232 22 4 2 Fast D A Converter 232 22 4 3 Slow A D Converter 232 22 5 Sample Circuits eese 233 22 6 Register Descriptions 235 23 Analog Digital Converter 23 1 1 ae eee 240 23 2 Block Diagram eee 241 23 2 1 Registers 22 241 23 3 Dependencies 242 23 3 VO Pins i eet teretes 242 23 3 2 242 23 4 Operation iet treten pens 243 23 4 1 Single Reading 243 23 4 2 Continuous Read 243 23 4 3 Handling Interrupts 243 23 5 Sample Circu it 244 23 6 Register Descriptions 245 24 DMA Channels 241 OV rVIeW iicet fito aerasi 249 24 1 1 Block Diagram 252 24 1 2 ReglStets aaa 253 24 2 255 2424 MO PINS ne ettet 255 24 23 Clocks eterne 255 24 2 3 Other Registers 255 24 2 4 Interrupts 222222222 2 027 255 24 3
414. te output 1 SDATG 10 Parallel Port E bit 4 alternate output 2 11 Parallel Port E bit 4 alternate output 3 TCLKE Parallel Port E Control Register PECR Address 0x0074 Bit s Value Description 7 6 These bits are ignored and should be written with zero 5 4 00 The upper nibble peripheral clock is perclk 2 01 The upper nibble peripheral clock is the output of Timer 1 10 The upper nibble peripheral clock is the output of Timer B1 11 The upper nibble peripheral clock is the output of Timer B2 3 2 These bits are ignored and should be written with zero 1 0 00 The lower nibble peripheral clock is perclk 2 01 The lower nibble peripheral clock is the output of Timer 1 10 The lower nibble peripheral clock is the output of Timer B1 11 The lower nibble peripheral clock is the output of Timer B2 Rabbit 6000 User s Manual digi com 132 Parallel Port E Function Register PEFR Address 0x0075 Bit s Value Description 7 0 0 The corresponding port bit functions normally 1 The corresponding port bit carries its alternate signal as an output See Table 12 1 Parallel Port E Drive Control Register PEDCR Address 0x0076 Bit s Value Description 7 0 0 The corresponding port bit as an output is driven high and low 1 The corresponding port bit as an output is open drain Parallel Port E Data Direction Register PEDDR Address 0
415. ted by this flag 10 Transmitter finished sending an abort An interrupt is generated at the end of an abort transmission 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 0 0 The byte in the receiver buffer is 8 bits 1 The byte in the receiver buffer is less than 8 bits Rabbit 6000 User s Manual digi com 212 Serial Port x Control Register SECR Address 0x00CC SFCR Address 0x00DC Bit s Value Description 7 6 00 No operation These bits are ignored in the asynchronous mode 01 In HDLC mode force receiver in flag search mode 10 No operation 11 In HDLC mode transmit an abort pattern 5 4 00 Parallel Port C is used for data and optional clock input 01 Parallel Port D is used for data and optional clock input 10 Parallel Port E is used for data and optional clock input 11 Disable the receiver data input Clocks from Parallel Port E 3 2 00 Asynchronous mode with 8 bits per character 01 Asynchronous mode with 7 bits per character In this mode the most significant bit of a byte is ignored for transmit and is always zero in receive data 10 HDLC mode with external clock The external clocks are supplied via parallel port pins HDLC mode with internal clock The clock is 16x the data rate and the DPLL is 11 used to recover the receive clo
416. ter ICM1R Address 0x005B ICM2R Address 0x005F Bit s Value Description The most significant eight bits of the latched Input capture count are 7 0 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 Rabbit 6000 User s Manual digi com 332 29 QUADRATURE DECODER 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 OxFF or Ox3FF or from OxFF or Ox3FF to 0x00 An interrupt can occur each time the count overflows or underflows The Quadrature Decoder con tains digital filters on the inputs to prevent false counts The external signals are synchronized with an internal clock provided by the output of Timer A10 Each Quadrature Decoder channel accepts inputs from either the upper nibble or lower nibble of Parallel Ports D and E The I signal is input on an odd numbered port bit while the Q signal is input on an even numbered port bit There is also a disable selection which is guaranteed to not generate a count increment or decrement on either enter
417. the port transfer clock Parallel Port D Bit 7 Register PDB7R Address 0x006F Bit s Value Description 6 0 These bits are ignored The port buffer bit 7 is written with the value of this bit The port buffer 7 Write will be transferred to the port output register on the next rising edge of the port transfer clock Rabbit 6000 User s Manual digi com 123 Parallel Port Dx Control Register PDOCR Address 0x04E0 PD1CR Address 0x04E1 PD2CR Address 0x04E2 PD3CR Address 0x04E3 PD4CR Address 0x04E4 PD5CR Address 0x04E5 PD6CR Address 0x04E6 PD7CR Address 0x04E7 Bit s Value Description 7 5 These bits are reserved and should be written with zeros 4 0 Fast output slew rate 1 Slow output slew rate 222 00 4 mA output drive capability 01 8 mA output drive capability 10 10 mA output drive capability 11 14 mA output drive capability 1 0 00 No pullup or pulldown resistor 01 75 pullup resistor 10 75 pulldown resistor 11 75 keeper Rabbit 6000 User s Manual digi com 124 12 PARALLEL PORT E 12 1 Overview Parallel Port E is a byte wide port with each bit programmable for data direction and drive level These are simple inputs and outputs controlled and reported in the Port E Data Register PEDR All of the Parallel Port E pins have alternate output functions and all of them can be used as inputs to v
418. the CPU frequency when accessing Wi fi peripheral is 5 The interface for Wi Fi peripheral does not run at the CPU frequency but instead uses the S0MHz 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 The Network Port C DMA Wait Register NCDWR provides a five bit field for selecting Wait states for DMA accesses To calculate the number of Wait states required divide 65nS by the period of the main processor clock round up to the next integer and subtract two This is the required number of Wait states and guarantees that the Wi Fi cycle time of 65nS is always met Note that if software can guarantee that the cycle time will be met and only byte accesses will be per formed a smaller number can be used for CPU Wait states This smaller number guarantees that the mini mum width for the internal Wi Fi read and write strobes will be met Rabbit 6000 User s Manual digi com 314 CPUDMA DMAWaits unrestricted gt 50 0 MHz 2 2 0 gt 61 5 MHz 3 3 gt 76 9 MHz 4 4 P gt 92 3 MHz 5 5 gt 107 6 MHz 6 6 4 gt 123 0 MHz 7 7 1 gt 138 4 MHz 8 8 5 gt 153 8 MHz 9 9 5 gt 169 2 MHz 10 10 8 gt 184 6 MHz 11 11 8 gt 200 0 MHz 12 12 m Although this 65nS cycle time limits the bus bandwidth of
419. the appro priate value to TATIOR Timer 12 be used as a predivider for Timer A10 Both the I and Q inputs go through a digital filter that rejects pulses shorter than two clock periods wide 29 2 3 Other Registers Register Function 10 Time constant for Quadrature Decoder clock TAT12R Optional predivider for Timers A8 11 TAECR Enable for Timer A12 prescaling 29 2 4 Interrupts Each Quadrature Decoder channel can generate an interrupt whenever the counter increments from OxOFF Ox3FF in 10 bit mode to 0x00 or when the counter decrements from 0x000 to OxOFF Ox3FF for 10 bit mode The interrupt request is cleared when QDCSR is read 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 Rabbit 6000 User s Manual digi com 336 29 3 Operation The following steps explain how to set up a Quadrature Decoder channel 1 Configure Timer A10 via 10 to provide the desired Quadrature Decoder clock speed and optionally TA12R 2 Configure QDCR to select the input pins for the two channels 3 Reset the counters by writing to QDCSR 29 3 1 Handling Interrupts The following steps explain how an interrupt is set up and used 1 Write the vector to the interrupt service routine to the internal interrupt table 2 Configure QDC
420. the bus interleaving mode set the maximum burst size in DCSTCR The DMA requires several cycles of overhead when starting up This overhead comes about because the DMA actually uses part of the processor to perform the data transfers and consists of one instruction fetch time plus three clock cycles The byte fetched during the instruction fetch time is discarded and will be refetched at the completion of the DMA burst At the end of the DMA burst two clock cycles are required before this first instruction fetch starts An individual DMA channel transfers data without any overhead between bytes but there is always one clock cycle of dead time when switching between DMA channels 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 Rabbit 6000 User s Manual digi com 258 Table 24 4 Maximum DMA Transfer Rates Bus Sharing Mode Setting Total Clocks 1 byte per burst 11 clocks 11 2 bytes per burst 15 clocks 75 3 bytes per burst 19 clocks 6 3 4 bytes per burst 23 clocks 5 8 8 bytes per burst 39 clocks 4 9 16 bytes per burst 71 clocks 4 4 32 bytes burst 135 clocks 4 2 64 bytes per burst 263 clocks 4 1 The total number of clocks listed in Table 24 4 is related to the number of bytes per burs
421. the incoming packet if it is not desired 1 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 Rabbit 6000 User s Manual digi com 205 A sample HDLC interrupt handler is shown below for Serial Port E hdlc_sere_isr push af 101 14 SESR get status bit a 7 check if byte ready in RX buffer push af save status for next check jr 2 check for tx rx ready check status byte in A for abort or invalid CRC flags ioi ld a SEDR read byte and clear interrupt store byte in A here check for tx pop af bit a 3 check if TX buffer was emptied jr nz done check status byte in A for transmit finish reason CRC abort etc get next byte to be transmitted into A here if it is the last byte of the packet load it into SEAR or SELR instead ioi 14 SEDR load next byte into buffer and clear interrupt done pop af ipres ret 20 3 3 More on Clock Synchronization and Data Encoding The transmitter is not capable of sending an arbitrary number of bits but only a multiple of bytes However the receiver can receive frames of any bit length If the last byte in the frame is not eight bits the receiver sets a status flag that is buffered along with this last byte Software can then use the table below to determine the number of valid data bits in this last byte Note that the receiver transfers all bits between the op
422. the receive data To work properly then transitions are required in the receive data stream NRZ data encoding does not guarantee transitions in all cases a long string of zeros for example but the other data encodings do NRZI guarantees transitions because of the inserted zeros and the biphase encodings all have at least one transition per bit cell The DPLL counter normally counts by 16 but if a transition occurs earlier or later than expected the count will be modified during the next count cycle If the transition occurs earlier than expected it means that the bit cell boundaries are early with respect to the DPLL tracked bit cell boundaries so the count is shortened by either one or two counts If the transition occurs later than expected it means that the bit cell boundaries are late with respect to the DPLL tracked bit cell boundaries so the count is lengthened by either one or two counts The decision to adjust by one or by two depends on how far off the DPLL tracked bit cell boundaries are This tracking allows for minor differences in the transmit and receive clock frequencies With NRZ and NRZI data encoding the DPLL counter runs continuously and adjusts after every receive data transition Since NRZ encoding does not guarantee a minimum density of transitions the difference between the sending data rate and the DPLL output clock rate must be very small and depends on the longest possible run of zeros in the received frame NRZ
423. ther registers associated with breakpoints 32 2 4 Interrupts When an enabled address match occurs for a given breakpoint a breakpoint interrupt occurs The break point that caused the interrupt must be determined by reading BDCR which also clears the interrupt Any of the breakpoint interrupts can be enabled by writing to BDCR 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 32 3 Operation The following steps must be taken to enable breakpoints 1 Write the vector to the interrupt service routine to the external interrupt table 2 Write the desired breakpoint addresses to the appropriate breakpoint address registers BxAyR where x is the breakpoint and is the byte of the address 0 2 3 Write an address mask for the given breakpoints BxMyR 4 Select the breakpoint address match type execute data read data write by writing to the appropri ate BxCR 5 Enable the desired breakpoints by writing to BDCR 32 3 1 Handling Interrupts The following actions occur within the interrupt service routine Which breakpoints are pending must be determined by reading BDCR This also clears the pending breakpoints The desired breakpoint action
424. tion 2 3 1 Main Clock The main clock is based on the main oscillator output which in turn is driven by the CLK_HSI and CLK_HSO pins This output serves as the input for the main PLL which can be programmed for various frequencies or bypassed completely There is an option for the resulting output to then be sent through the spectrum spreader and then the clock doubler which are described later This resulting clock is the main clock Different main clock modes may be selected via the GCSR as shown in Table 2 2 Note that one GCSR setting slows the processor clock while the peripheral clock operates at full speed this allows some power reduction while keeping settings like serial baud rates and the PWM at their desired values Table 2 2 Clock Modes GCSR Setting Processor Clock Peripheral Clock 010 Main clock Main clock 011 Main clock 2 Main clock 2 xxx110xx Main clock 4 Main clock 4 xxxllixx Main clock 6 Main clock 6 xxx000xx Main clock 8 Main clock 8 default on startup 001 Main clock 8 Main clock 100 32 kHz clock possibly divided aac sbs 101 2 2 output 7 signal 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 Ra
425. tion RAM 10 Parallel Port C D and E outputs 442 parallel ports 2 terne 9 parallel port inputs sssseeeeee 444 PWM outputs 9 pin amp Lee 434 Quadrature Decoder channels 9 alternate pin functions inr 9 Parallel Port A and B outputs 44 specifications 12 Parallel Port C D and E outputs 442 Rabbit Semiconductor parallel port inputs 444 Inti Saa aqa sasataraq muat qaa aispa 8 pinout vous babii 434 registers BGA package eem 429 430 alphabetic listing power consumption 2 26 AOCR utu e 236 pulse width modulator AOILR 1 2 2 2 0204120 44000 0000000000000000 235 See PWM iei RI 235 PWM suse rene ah ukap 340 ADOER E Z s u 235 block diagram 2 24 4 343 inet ees 235 channels propi erdt v Spore a 344 cine 237 dug 344 236 dependencies eene terree A 344 2 000000 237 DMA channels mme 342 236 interrupts 340 344 345 237 example ISR 345 OCR eee ee 239 Operati
426. tioning circuitry can be inserted in place of the op amp Figure 23 1 Sample Multiplexed A D Converter Circuit Rabbit 6000 User s Manual digi com 244 23 6 Register Descriptions ADC LSB Register ADCLR Address 0x0540 Bit s Value Description 7 0 Write Writes to this register are ignored The current values of the 4 least significant bits of the multiplexed A D 74 Read converter channel are returned Reading this register locks the value in the corresponding MSB register to guarantee that the full 12 bits are valid The channel is selected in ADCCSR 3 2 Read These bits always return zeros when read 1 0 No conversion is running 1 A conversion is in progress 0 0 Conversion is not complete or data have been read 1 Conversion is complete This bit is cleared by a read of this register ADC MSB Register ADCMR Address 0x0541 Bit s Value Description 7 0 Read The current values of the 8 most significant bits of the multiplexed A D converter channel are returned The channel is selected in ADCCSR Write Writes to this register are ignored Rabbit 6000 User s Manual digi com 245 ADC Command Status Register ADCCSR Address 0x0543 Bit s Value Description 7 0 Normal processor controlled conversions 1 Continuous conversions for each channel sequentially 6 4 000 Select A D Converte
427. tions 173 18 Timer C 18 1 OV OCRVICW inrer 176 18 1 1 Block Diagram 177 18 1 2 Registers eene ees 178 18 2 Dependencies sees 179 18 2 1 IO PinmS iis acacia 179 18 2 2 CLOCKS 1 179 18 2 3 Other Registers 179 18 2 4 Interrupts 179 18 3 Oper tiOn i ette bent 180 18 3 1 Handling Interrupts 180 18 3 2 Example ISR 180 18 4 Register Descriptions 181 19 Serial Ports D 191 OVerNIeW 184 19 1 1 Block Diagram 186 19 1 2 Registers 187 19 2 Dependencies 2 222 2 2 188 19 2 1 VO PiNS tes 188 1922 Clocks screens 188 19 2 3 Other Registers 189 19 2 4 Interrupts eene 189 19 3 Operation rentre 190 19 3 1 Asynchronous Mode 190 19 3 2 Clocked Serial Mode 191 19 4 Register Descriptions 193 20 Serial Ports E F 20 OV rVISW oie ette hen tete tren 200 20 1 1 Block Diagram 201 20 1 2 Registers oria 202 20 2 Dependencies 2224 201 203 20221 UO Ping eren 203 20 2 2 GIOCKS
428. to DMA Channel 10 1011 External DMA Request 1 supplied to DMA Channel 11 100 External DMA Request 1 supplied to DMA Channel 12 1101 External DMA Request 1 supplied to DMA Channel 13 1110 External DMA Request 1 supplied to DMA Channel 14 1111 External DMA Request 1 supplied to DMA Channel 15 Rabbit 6000 User s Manual digi com 269 DMA Timed Request Conirol Register DTRCR Address 0x0115 Bit s Value Description 7 0 Timed DMA request disabled 1 Timed DMA request enabled 6 These bits are reserved and should be written with zeros 5 4 00 Timed DMA request transfers one byte per request 01 This bit combination is reserved and should not be used 10 Timed DMA request triggers transfers until current descriptor is complete DMA channel fetches the next descriptor if appropriate 11 This bit combination is reserved and should not be used 3 0 0000 Timed DMA request supplied to DMA Channel 0 0001 Timed DMA request supplied to DMA Channel 1 0010 Timed DMA request supplied to DMA Channel 2 0011 Timed DMA request supplied to DMA Channel 3 0100 Timed DMA request supplied to DMA Channel 4 0101 Timed DMA request supplied to DMA Channel 5 0110 Timed DMA request supplied to DMA Channel 6 0111 Timed DMA request supplied to DMA Channel 7 1000 Timed DMA request supplied to DMA Channel 8 1001 Timed DMA r
429. tput direction for each pin via PCDDR 2 Select driven or open drain functionality for outputs via PCDCR 3 If a particular drive strength slew rate or pullup down resistor status is desired for a Parallel Port C pin set that in the appropriate PCxCR 4 If an alternate peripheral output function is desired for a pin select it via PCALR or PCAHR and then enable it via PCFR Refer to the appropriate peripheral chapter for further use of that pin Once the port is set up data can be read or written by accessing PCDR The value in PCDR of an output pin will reflect its current output value but any value written to an input pin will not appear on that pin until that pin becomes an output 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 Rabbit 6000 User s Manual digi com 109 10 4 Register Descriptions Parallel Port C Data Register PCDR Address 0x0050 Bit s Value Description 7 0 Read current state of Parallel Port C pins 7 is reported The Parallel Port C buffer is written with this value for transfer to the Write Parallel Port C output register on the next rising edg
430. tput occurs on Parallel Ports D G 17 2 2 Clocks The timer in Timer B can be clocked by perclk 2 perclk 16 or by countdown Timers A1 or A11 as selected in 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 12 as prescaler for 8 11 TAPR The output of TAPR drives Timers A1 and A12 Rabbit 6000 User s Manual digi com 171 17 2 4 Interrupts A Timer B interrupt can be generated whenever the counter equals one of the match registers by enabling the appropriate bit in TBCSR The interrupt request is cleared when TBCSR is read 17 3 Operation The following steps explain how to set up a Timer B countdown timer 1 Select perclk 2 perclk 16 Timer 1 or Timer in TBCR 2 Use TBCR to select whether countdown Timers B1 B2 operate normally with the match registers or whether they use the step registers to calculate match values 3 Enable Timer by writing a 1 to bit 0 of TBCSR 17 3 1 Handling Interrupts The following steps explain how an interrupt is set up and used 1 Write the vector to the interrupt service routine to the internal interrupt table 2 Configure TBCSR to select which match register will generate an interrupt 3 Configure TBCR to select the interrupt priority note that interrupts will be enabled once this value is set this step should be done last
431. ts Tx Clocks 16 bit Data Bus upper byte External I O Strobes PWM Output Timer C Output perclk Rabbit 6000 User s Manual digi com 154 15 1 2 Registers Register Name Mnemonic I O Address R W Reset Port H Data Register PHDR 0x0034 00000000 Port H Alternate Low Register PHALR 0x0032 00000000 Port H Alternate High Register PHAHR 0x0033 00000000 Port H Function Register PHFR 0x0035 R W 00000000 Port H Drive Control Register PHDCR 0x0036 00000000 Port H Data Direction Register PHDDR 0x0037 00000000 Port Hx Control Register PExCR 0x04D8 x W xxx00000 Rabbit 6000 User s Manual digi com 155 15 2 Dependencies 15 2 1 I O Pins Parallel Port H uses pins PHO through PH7 These pins can be used individually as All pins are set as inputs on startup Data inputs or outputs The serial port transmit for Serial Ports E and F The clock transmit internal clock mode for Serial Ports External I O strobes Outputs for the PWM and Timer C peripherals In addition Parallel Port H acts as the upper byte of the data bus D 15 8 for external I O when 16 bit data is enabled The individual bits can be set to be open drain via PHDCR Drive strength slew rate and the pullup down resistor status are selectable via PHxCR See the associated peripheral chapters for details on how they use Parallel Port H 15 2
432. ts An interrupt can be generated whenever one of the following occurs e Start condition detected e Stop condition detected e Slave address match or general call Byte received Byte transmitted Arbitration lost master mode non ACK response master mode The interrupt selection is in SGCIR The PC interrupt vector is located in the IIR at offset 0x150 It can be set as Priority 1 2 or 3 in SGMCR Rabbit 6000 User s Manual digi com 392 35 3 Operation 35 3 1 32 bit Interface The C peripheral is actually a 32 bit interface so special handling is required when reading or writing all registers other than SGDR and SGMCR When writing a 32 bit register the value is written to the peripheral only when the most significant byte uppermost is written The three lower bytes will be buffered until that final write occurs For proper oper ation all four bytes in the 32 byte register should be written every time a change to a bit is required When reading a 32 bit register the read of the least significant lowest byte will latch the peripheral s reg ister value for all four bytes Those values will remain until the next read of the lowest byte so to avoid stale data all four bytes should be read whenever a a 32 bit register is accessed 35 3 2 Interrupts To enable interrupts for the PC peripheral the following steps should be taken before performing any other actions 1 Write the vector to the interrupt ser
433. ue held in the width register Any changes to the width registers will not take effect until the next counter rollover The PWM is clocked by the output of Timer A9 which is used to set the period Timer A9 can be further prescaled by cascading it off of Timer A12 Each PWM output high time can optionally be spread throughout the cycle to reduce ripple on the exter nally filtered PWM output The PWM outputs can be passed through a filter and used as a 10 bit D A con verter The outputs can also be used to directly drive devices such as motors or solenoids that have intrinsic filtering The PWM outputs can trigger a PWM interrupt when the counter rolls over to zero on every PWM cycle every other cycle every fourth cycle or every eighth cycle In addition the PWM output can be sup pressed every other cycle three out of every four cycles or seven out of every eight cycles These options provide support for driving servos and to generate audio signals The setup for this interrupt is done in the PWLOR and PWLIR registers The timing is shown below ITERATION 21314151617 LI LI LI LI 1 1 8 OUTPUT i 1 4 OUTPUT 1 2 OUTPUT 1 4 INTERRUPT 1 2 INTERRUPT LI LI i i l i l jl LI FULL INTERRUPT Rabbit 6000 User s Manual digi com 340 The spreading function is implemented by dividing each 1024 clock cycle into four quadrants of 256 clocks each Within each quadrant the Pulse Width Modulator
434. unction 0xCO Reset all six bytes of the real time clock counter to 0x00 and remain in byte increment mode in preparation for setting the time 7 6 01 This bit combination must be used with every byte increment write 5 0 0 No effect on the real time clock counter 1 Increment the corresponding byte of the real time clock counter Real Time Clock x Register RTCOR Address 0x0002 RTC1R Address 0x0003 RTC2R Address 0x0004 RTC3R Address 0x0005 RTC4R Address 0x0006 RTC5R Address 0x0007 Bit s Value Description 7 0 Read The current value of the 48 bit real time clock counter is returned Writing to transfers the current count of the real time clock to a Write holding register while the real time clock continues counting Rabbit 6000 User s Manual digi com 49 Watchdog Timer Control Register WDTCR Address 0x0008 Bit s Value Description 7 0 Ox5A Restart the watchdog timer with a 2 second timeout period 0x57 Restart the watchdog timer with a 1 second timeout period 0x59 Restart the watchdog timer with 500 ms timeout period 0x53 Restart the watchdog timer with a 250 ms timeout period Ox5F Restart the secondary watchdog timer other No effect on watchdog timer or secondary watchdog timer read Return the least significant 8bits of the CPU clock cycle count
435. unctions 136 register descriptions 98 block diagram 138 Sa 95 C C MORIR 139 slave port data bus 4 0 44 4000 04400 94 dependencies sss 139 Parallel Port B 100 InterFupts ois tes ee b e e DER Ts 140 alternate input functions 101 Operation csssesseeeeeeererenn rennen 140 alternate output fUnctions 100 OVEIVIEW rossi tide p 136 block diagram n 101 PFDR 136 CLOCKS e 102 register descriptions RO NONU 141 dependencies 4 4 040 102 Ius 139 external bus naa 100 Parallel Port 145 scu u a aE a ua au saq 103 alternate input functions 146 OVETVICW M 100 Rabbit 6000 User s Manual rabbit com 449 alternate output functions 145 Q block diagram 1 146 ua apu a RE hata ahus 147 Quadrature Decoder 020 335 dependencies a 147 block diagram see 335 MTSE Pts 148 aa e 334 336 Operatii u co 148 counter operation 4 4494 333 OVERVIEW
436. uppression delay 1 0 Bits 9 8 of the data acknowledgement delay Serial Port G Timing Control 2 Register SGTC2R Address 0x0596 Bit s Value Description 7 0 These bits are reserved and should be written as zeros Serial Port G Timing Control 3 Register SGTC3R Address 0x0597 Bit s Value Description 7 0 These bits are reserved and should be written as zeros Rabbit 6000 User s Manual digi com 400 Serial Port G Bus Monitor 0 Register SGBMOR Address 0x0598 Bit s Value Description 7 2 These bits are reserved and will always return zeros 1 0 SCL is low Read 20 1 SCL is high 0 0 SDA is low Read only 1 SDA is high Serial Port G Bus Monitor 1 Register SGBM1R Address 0x0599 Bit s Value Description 7 0 These bits are reserved and should be written as zeros Serial Port G Bus Monitor 2 Register SGBM2R Address 0x059A Bit s Value Description 7 0 These bits are reserved and should be written as zeros Serial Port G Bus Monitor 3 Register SGBM3R Address 0x059B Bit s Value Description 7 0 These bits are reserved and should be written as zeros Rabbit 6000 User s Manual digi com 401 Serial Port G Main Control Register SGMCR Address 0x059F Bit s Value Description 7 4 These bits are reserved and should be written
437. used to select between 0 63 wait states The 250nS cycle time for the USB peripheral comes from the 48 USB clock it is twelve cycles of this clock per access Rabbit 6000 User s Manual digi com 318 27 2 3 Other Registers Register Function PEDDR PEFR Selection of optional power control and PEALR overcurrent fault detection signals ENPR Enable USB functionality MSSR Select 48 MHz crystal or external clock 27 2 4 Interrupts 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 Rabbit 6000 User s Manual digi com 319 27 3 Operation High level support for USB is beyond the scope of this manual but this section will describe the low level setup and operation of the USB host peripheral Dynamic C has the necessary drivers 27 3 1 32 bit Interface Network Port D is actually a 32 bit interface so special handling is required when reading or writing all registers other than USBWR and NDWR When writing a 32 bit register the value is written to the peripheral only when the most significant byte uppermost is written The three lower bytes will be buffered until that final write occurs For proper oper ation all four bytes in the 32 byte register should be written every time a change to a bit is required When reading a 32 bit
438. vice routine to the internal interrupt table 2 Configure SGMCR to select the PC interrupt priority and SGCIR to select which interrupts will occur In the interrupt service routine read 50 1 to identify the reason for interrupt and clear the pending sta tus All of the sequences below can be used as interrupt driven routines as well by replacing the polling steps with responses to interrupts 35 3 3 Master Mode Data Write To write data in master mode perform the following operations 1 Set the clock speed by writing to SGCDxR 2 Set the target slave address and R W bit by writing to SGDR 3 Set the master mode and enable the controller by setting bits 1 and 2 of SGCOR 4 Send the first byte by setting bits 4 and 7 of SGCOR This can be combined with the previous opera tion en Monitor bit 4 of SGSxR to determine when the byte has been sent Send the next byte by clearing bit 4 and setting bit 7 of SGCOR If this is the final byte to be sent set bit 5 as well to follow it with a Stop condition 7 Monitor bit 4 of SGSxR to determine when the byte has been sent e 8 Repeat Steps 6 8 until all data have been sent To start communicating with a new slave restart at Step 2 Rabbit 6000 User s Manual digi com 393 35 3 4 Master Mode Data Read To read data in master mode perform the following operations 1 2 3 4 a gt oo 9 Set the clock speed by writing to SGCDxR Set the
439. with zero 2 0 Multiplexed A D converter powered down 1 Multiplexed A D converter active 1 0 00 Multiplexed A D converter interrupt is disabled 01 Multiplexed A D converter uses Interrupt Priority 1 10 Multiplexed A D converter uses Interrupt Priority 2 11 Multiplexed A D converter uses Interrupt Priority 3 Rabbit 6000 User s Manual digi com 247 ADC x LSB Register ADCOLR Address 0x0550 ADC1LR Address 0x0552 ADC2LR Address 0x0554 ADC3LR Address 0x0556 ADC4LR Address 0x0558 ADC5LR Address 0x055A ADC6LR Address 0x055C ADC7LR Address 0x055E Bit s Value Description 7 0 Write Writes to this register are ignored The current values of the 4 least significant bits of the multiplexed A D 7 4 Read converter channel are returned Reading this register locks the value in the corresponding MSB register to guarantee that the full 12 bits valid 3 2 Read These bits always return zeros when read 1 0 No conversion is running 1 A conversion for this channel is in progress 0 0 Conversion is not complete or data have been read l Conversion for this channel is complete This bit is cleared by a read of this register ADC x NSB Register ADC0MR Address 0x0551 ADC1MR Address 0x0553 ADC2MR Address 0x0555 ADC3MR Address 0x0557 ADC4MR Address 0x0559 ADC5MR Address 0x055B ADC6M
440. with zeros Reads return Zeros 3 0 Parallel Port 1 is used for SCL 1 Parallel Port PES is used for SCL 2 0 Parallel Port PEO is used for SDA 1 Parallel Port PE4 is used for SDA 1 0 00 The serial port interrupt is disabled 01 The serial port uses interrupt priority 1 10 The serial port uses interrupt priority 2 11 The serial port uses interrupt priority 3 Rabbit 6000 User s Manual digi com 402 36 LOW POWER OPERATION 36 1 Overview 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 Figure 36 1 shows a typical current draw as a function of the main clock frequency when all of the network ports and analog functions are disabled The values shown do not include any current consumed by external oscillators or memory It is assumed that approximately 30 pF is connected to each address line 100 90 80 4 70 4 60 4 50 4 40 30 4 20 4 10 4 CURRENT mA 0 50 100 150 200 CPU PERIPHERAL CLOCKS MHz Figure 36 1 Typical Current Draw as a Function of the Main Clock Frequency The typical current draw in the ultra sleepy modes is 5 mA for Icogg and 6 mA for lo
441. wn resistor on D 1 Enable the 19 5 pulldown resistor on D 1 0 Disable the 19 5 pulldown resistor on D 1 Enable the 19 5 kQ pulldown resistor on D 0 0 Disable the USB overcurrent detection input on PE3 1 Enable the USB overcurrent detection input Network Port D Wait Register NDWR Address 0x0433 Bit s Value Description 7 6 These bits are reserved and will always be read as zeros This six bit field holds the ones complement of the number of wait states 5 0 to be inserted during Network Port D internal I O page 0x0B reads and writes That is OxOO selects 63 wait states and Ox3F selects zero wait states Network Port D has a minimum bus cycle time of 250 ns Rabbit 6000 User s Manual digi com 321 28 INPUT CAPTURE 28 1 Overview The input capture peripheral consists of two channels each of which contains a 16 bit counter and edge detection circuitry The input capture channels are usually used to determine the time between events An event is signaled by a rising or falling edge or optionally by both edges on one of 12 input pins that can be selected as the input for either of the two channels A digital low pass filter is present on the inputs as explained in Section 28 2 4 Each channel can be used in one of two modes input capture or input count In the input capture mode the channel starts stops the counter clocked by Timer A8 according to the sig
442. writing the most significant bit registers or AIQMR 4 To reduce power consumption the fast D A converter can be put into sleep mode by writing to AICR 22 4 3 Slow A D Converter The following steps must be taken to operate the slow A D converter 1 Select the clock source and enable the slow A D converter by writing to A2CR 2 Start a conversion by writing to bit 2 of A2CR 3 Monitor bit 3 of A2CR to determine when the conversion is complete then read the data in the A2LR and A2MR registers Reading the least significant bit registers first will lock the value in the most significant bit register until it is read 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 Rabbit 6000 User s Manual digi com 232 22 5 Sample Circuits Sample circuits are shown below for the analog components Since each analog component has dedicated power and ground be sure to allow enough filtering for each block as shown a range of ferrite beads may be used we obtained good results with ferrite beads rated at 120 Q 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 Ferrite not connected 12 1 3 3 V ae optional resistor Ferrite network to create VIN V18 W18 voltage output FAST TXE m o
443. written with the value of this bit The port buffer 2 Write will be transferred to the port output register on the next rising edge of the port transfer clock Parallel Port D Bit 3 Register PDB3R Address 0x006B Bit s Value Description 7 4 2 0 These bits are ignored The port buffer bit 3 is written with the value of this bit The port buffer 3 Write will be transferred to the port output register on the next rising edge of the port transfer clock Parallel Port D Bit 4 Register PDB4R Address 0x006C Bit s Value Description 7 5 3 0 These bits are ignored The port buffer bit 4 is written with the value of this bit The port buffer 4 Write will be transferred to the port output register on the next rising edge of the port transfer clock Parallel Port D Bit 5 Register PDB5R Address 0x006D Bit s Value Description 7 6 4 0 These bits are ignored The port buffer bit 5 is written with the value of this bit The port buffer 5 Write will be transferred to the port output register on the next rising edge of the port transfer clock Rabbit 6000 User s Manual digi com 122 Parallel Port D Bit 6 Register PDB6R Address 0x006E Bit s Value Description 7 5 0 These bits are ignored The port buffer bit 6 is written with the value of this bit The port buffer 6 Write will be transferred to the port output register on the next rising edge of
444. x ccess D 15 0 A 23 0 MBxCR MBxLCR MBxHCR STACKSEG MTCR DATASEG MACR SEGSIZE ACSxCR STKzLR Rabbit 6000 User s Manual digi com 57 5 1 2 Registers Register Name Mnemonic I O Address R W Reset MMU Instruction Data Register MMIDR 0x0010 00000000 Stack Segment Register STACKSEG 0x0011 00000000 Stack Segment LSB Register STACKSEGL 0 001 00000000 Stack Segment MSB Register STACKSEGH 0x001B R W 00000000 Data Segment Register DATSEG 0x0012 R W 00000000 Data Segment LSB Register DATSEGL 0x001E R W 00000000 Data Segment MSB Register DATSEGH 0x001F R W 00000000 Segment Size Register SEGSIZE 0x0013 R W 11111111 Memory Bank 0 Control Register MBOCR 0x0014 R W 00001000 Memory Bank 1 Control Register MBICR 0x0015 Memory Bank 2 Control Register MB2CR 0x0016 Memory Bank 3 Control Register MB3CR 0x0017 MMU Expanded Code Register MECR 0x0018 00000000 Memory Timing Control Register MTCR 0x0019 00000000 Memory Alternate Control Register MACR 0x001D 00000000 Memory Bank 0 Low Control Register MBOLCR 0x0400 R W 00001000 Memory Bank 0 High Control Register MBOHCR 0x0401 00001000 Memory Bank 1 Low Control Register MBILCR 0x0402 00001000 Memory Bank 1 High Control Register MB1HCR 0
445. x0077 Bit s Value Description 7 0 0 The corresponding port bit is an input 1 The corresponding port bit is an output Parallel Port E Bit 0 Register PEBOR Address 0x0078 Bit s Value Description 7 1 These bits are ignored The port buffer bit 0 is written with the value of this bit The port buffer 0 Write will be transferred to the port output register on the next rising edge of the peripheral clock Parallel Port E Bit 1 Register PEB1R Address 0x0079 Bit s Value Description 7 2 0 These bits are ignored The port buffer bit 1 is written with the value of this bit The port buffer 1 Write will be transferred to the port output register on the next rising edge of the peripheral clock Rabbit 6000 User s Manual digi com 133 Parallel Port E Bit 2 Register PEB2R Address 0x007A Bit s Value Description 7 3 1 0 These bits are ignored The port buffer bit 2 is written with the value of this bit The port buffer 2 Write will be transferred to the port output register on the next rising edge of the peripheral clock Parallel Port E Bit 3 Register PEB3R Address 0 007 Bit s Value Description 7 4 2 0 These bits are ignored The port buffer bit 3 is written with the value of this bit The port buffer 3 Write will be transferred to the port output
446. x0403 00001000 Memory Bank 2 Low Control Register MB2LCR 0x0404 00001000 Memory Bank 2 High Control Register MB2HCR 0x0405 R W 00001000 Memory Bank 3 Low Control Register MB3LCR 0x0406 00001000 Memory Bank 3 High Control Register MB3HCR 0x0407 R W 00001000 Advanced CSO Control Register ACSOCR 0x0410 00000000 Advanced CS1 Control Register ACSICR 0x0411 R W 00000000 Advanced CS2 Control Register ACS2CR 0x0412 R W 00000000 RAM Segment Register RAMSR 0x0448 R W 00000000 Write Protect n Register n 0 31 WPnR 0x460 n W 00000000 Rabbit 6000 User s Manual digi com 58 Register Name Mnemonic I O Address R W Reset Write Protect Segment A Register WPSAR 0x0480 W 00000000 Write Protect Segment A Low Register WPSALR 0x0481 W 00000000 Write Protect Segment A High Register WPSAHR 0x0482 W 00000000 Write Protect Segment B Register WPSBR 0x0484 W 00000000 Write Protect Segment B Low Register WPSBLR 0x0485 W 00000000 Write Protect Segment B High Register WPSBHR 0x0486 W 00000000 Stack Limit Control Register STKCR 0x0444 R W 00000000 Stack Low Limit Register STKLLR 0x0445 W XXXXXXXX Stack High Limit Register STKHLR 0x0446 W XXXXXXXX Address Bus Pin Control Register ADPCR 0x04A0 W xxx00000 Data Bus Pin Control Register DBPCR 0x04A1 W xxx00000 Control Pin Control Register CPCR 0x04A2 W xxx00000 Rabbit 6000 User s Manual digi com
447. xDR the final byte of the transfer will be written to the appropriate last data register SxLDR as required to complete an HDLC packet and append the CRC value In addition the value in the appropriate status register SxSR will be written to the status byte in the buffer descriptor pointed to by the initial address registers not necessarily the buffer descriptor that is currently being used These features allow an application to automatically send and receive packets via DMA only requiring direct handling of a packet when an error occurs 24 3 6 2 DMA with Ethernet The Ethernet network peripheral also receives special handing by the DMA When the DMA destination is the network data register NBDR the final byte of the transfer will be written to the last data register NBLDR as required to complete an Ethernet packet and append the CRC value The Ethernet network peripheral also has support for DMA fly by transfers between the peripheral and external memory 24 3 6 3 DMA with Wi Fi The Wi Fi network peripheral has support for DMA fly by transfers between the peripheral and memory However the Wi Fi peripheral has a minimum access time of 75 ns and typically requires wait states so fly by DMA may not be the most efficient access method There are two registers NCCWR and NCDWR that set the wait states for access to the Wi Fi peripheral both directly and via DMA 24 3 6 4 DMA with USB The USB network peripheral has support for DMA f
448. y Voltage VBAT 1 08 V 12 1 32 V VBAT Current gt rest of device powered IyBAT to be rest of device powered down determined VBATIO Supply Voltage rest of device powered VBATIO 3 0 V 3 3 V 3 6 V 2 rest of device powered down 1 08 V 12 3 6 V lt E VBATIO Current rest of device powered lyBATIO to be rest of device powered down determined Rabbit 6000 User s Manual digi com 417 37 2 AC Characteristics Table 37 3 AC Electrical Characteristics VDDcore 1 2 V 10 VDDIo 3 3 V 10 T4 40 C to 85 C Parameter Symbol Min Typ Max Main Clock Frequency on CLKI direct clock 20 MHz 200 MHz Main Clock Frequency on CLKI internal oscillator 24 MHz 42 MHz Main Clock Frequency on CLKI PLL input 20 MHz 25 MHz 42 MHz Real Time Clock Frequency on CLK32K fRTC 32 768 kHz Ethernet Clock Frequency 25 MHz 100 ppm Wi Fi Clock Frequency 20 MHz 100 ppm USB Clock Frequency fusB 48 MHz 100 ppm Rabbit 6000 User s Manual digi com 418 37 3 External Memory Access Times All access time measurements are taken at 50 of signal height 37 3 1 Memory Reads Table 37 4 Memory Read Time Delays VDDcore 1 2 V 10 VDDjo 3 3 V 10 T4 40 C to 85 C Parameter Symbol Min Typ Max Clock to Address Delay Taar 3ns 8 ns Clock to Memory Chip Select Delay Tcsx 3ns 6 ns Clock to Memory Read Strobe Delay To
449. y bus at an acceptable level This bus consists of eight data lines on Parallel Port A and up to eight address lines on Parallel Port B two of the address lines are also available on Parallel Port D If desired Parallel Port H can be used for an additional eight data lines for 16 bit accesses Note that if the 16 bit mode is enabled using parallel port H as the upper byte it does not behave the same as 16 bit accesses on the memory bus The external I O bus in 16 bit mode is word addressable while the memory bus is byte addressable Each 16 bit external I O write goes to a single address while 16 bit memory bus writes span two bytes This functionality is mutually exclusive with the slave port and regular parallel I O on Parallel Ports A and B When enabled the address lines of the external I O bus hold their value until a new value is written to them The data lines return to a tristate mode after each transaction See Section 31 1 2 for memory timing for external I O accesses Rabbit 6000 User s Manual digi com 348 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 The timing can also be adjusted using IBxER to change the frequency of the clock driving the External I O interface Ta
450. y the Rabbit and read by the Flexible Interface Module 16 expansion port registers that can be written by the Flexible Interface Module and read by the Rab bit The Rabbit provides an interrupt request line to the Flexible Interface Module The Flexible Interface Module provides an interrupt request line to the Rabbit The FIFOs DMA aware The interface between the Flexible Interface Modules and the Rabbit 6000 is described in this chapter Customers wishing to incorporate a custom Flexible Interface Module application in their own design should contact their sales representative at Digi International for more information Rabbit 6000 User s Manual digi com 368 33 2 Block Diagram Flexible Interface Modules 16 byte 16 byte Tx FIFO Rx FIFO FxDFR FxFSR FxRSFR Main Clock Fleible Interface Interrupt Module Control te Main PLL Control Port Expansion Registers Registers Reset Parallel Port F G Fleible Interface Aux Module IA 1 0 Parallel Port Override FxIOCLR FxAIOCMR FPxIOCR Interrupt Request Interrupt Set Parallel Ports F G Parallel Ports Rabbit 6000 User s Manual digi com 369 33 2 1 Registers Register Name Mnemonic Address R W Reset Master System Reset Register MSRR 0x0436 R W xxxxx0x0 Port Override Control Register POCR 0x0438 R W 0
451. yte bound aries The network port implements the NLP receive link integrity test state machine which requires link integrity pulses to be detected at certain intervals in the absence of other network activity If the network receiver enters the NLP Link Test Fail state because of missing link test pulses this state machine requires seven successive properly timed link test pulses or an equal number of FLP bursts before reporting that the link is again active The reset state of this state machine is link inactive Note that this is a subtle difference relative to the normal 10Base T receive link integrity state machine which requires either link test pulses or carrier sense to make the link active The network port implements the auto negotiation algorithm to determine half duplex or full duplex operation In addition to its normal automatic operation this feature can be disabled or commanded to execute under software control 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 The I O interface consists of differential pair circuits for transmit and receive and four LED out puts for link TX RX and speed status Rabbit 6000 User s Manual digi com 286 25 1 1 Block Diagram 10 100 Ethernet Peripheral 25 MHz Transmit Clock Network MII Tx Status Interface Tx FIFO 2048 byt
452. yte wide output port 010 Enable the slave port with SCS from Parallel Port E bit 7 011 Enable the external vO bus Parallel Port A is used for the data bus and Parallel Port 7 2 is used for the address bus 100 This bit combination is reserved and should not be used 101 This bit combination is reserved and should not be used 110 Enable the slave port with SCS from Parallel Port B bit 6 111 Enable the external vO bus Parallel Port A is used for the data bus and Parallel Port B 7 0 is used for the address bus 1 0 00 Slave port interrupts are disabled 01 Slave port interrupts use Interrupt Priority 1 10 Slave port interrupts use Interrupt Priority 2 11 Slave port interrupts use Interrupt Priority 3 Rabbit 6000 User s Manual digi com 359 32 BREAKPOINTS 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 A a particular bit position in the mask register inhibits the corresponding bit in the address match register from contributing to the address match condi tion When a match occurs a Level 3 breakpoint interrupt is generated Note that this means that breakpoints behave diff

Download Pdf Manuals

image

Related Search

Related Contents

1. introduction  TROFOLIN DATABASE USER MANUAL  user manual  HP EliteBook 2530p User's Manual  Menús (continuación)  PRO-Ax0V80x-SA-CAN - User Manual Rev 2  GENOU HYBRID - PROTEOR Handicap Technologie  ランクルプラド クリーンディーゼルのアドブルーの補充について  CPD-E220/E215E/E220E  NTSC Instruction Manual Manuel d\instruction Manual de  

Copyright © All rights reserved.
Failed to retrieve file