Part Number Hot Search : 
8051F9 AG231444 BFXXXX TS942IPT TS942IPT TS942IPT 2SC328 345040
Product Description
Full Text Search
 

To Download USB97C20103 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  smsc usb97c201 page 1 rev. 11-05-03 datasheet usb97c201 rev 1.6 usb 2.0 ata/ atapi controller features 2.5 volt, low power core operation 3.3 volt i/o with 5v input tolerance complete usb specific ation 2.0 compatibility - includes usb 2.0 transceiver - a bi-directional control, a bi-directional interrupt, and a bi-directional bulk endpoint are provided. complete system solution for interfacing ata or atapi devices to usb 2.0 bus - supports usb mass storage compliant bootable bios - support for atapi devices: - cd-rom - cd-r - cd-rw - dvd - dvd/r/w 8051 8 bit microprocessor - provides low speed control functions - 30 mhz execution speed at 4 cycles per instruction average - 768 bytes of internal sram for general purpose scratchpad or program execution while re-flashing external rom double buffered bulk endpoint - bi-directional 512 byte buffer for bulk endpoint - 64 byte rx control endpoint buffer - 64 byte tx control endpoint buffer - 64 byte tx interrupt endpoint buffer - 64 byte rx interrupt endpoint buffer external program memory interface - 64k byte code space - flash, sram, or eprom memory on board 12mhz crystal driver circuit internal pll for 480mhz usb2.0 sampling, 30mhz mcu clock, and 60mhz ata clock supports firmware upgrade via usb bus if ?boot block? flash program memory is used 8 gpios for special function use : led indicators, button inputs, etc. - inputs capable of generat ing interrupts with either edge sensitivity - one gpio has automatic ? sec toggle capability for flashing an led indicator. 100 pin tqfp package (14. 0 x 14.0 mm footprint) - 25% smaller body size than other 100 pin tqfp packages 100 pin qfp package ordering information order number(s): usb97c201-mn for 100 pin tqfp package usb97c201-mc for 100 pin qfp package
smsc usb97c201 page 2 rev. 11-05-03 datasheet ? standard microsystems corporation (smsc) 2003 80 arkay drive hauppauge, ny 11788 (631) 435-6000 fax (631) 273-3123 standard microsystems and smsc are register ed trademarks of standard microsystems cor poration. product names and company names are the trademarks of their respective holders. circuit diagrams utilizing smsc products ar e included as a means of illustrating typic al applications; consequently complete information sufficient for construction purposes is not necessarily given. although the information has been checked and is believed to be accurate, no responsibility is a ssumed for inaccuracies. sm sc reserves the right to make changes to specificati ons and product descriptions at any time without notice. contact your local smsc sales office to obtain the late st specificati ons before placin g your product order. the provision of this information does not convey to the purchaser of the semic onductor devices described any licenses under the pa tent rights of smsc or others. all sales are expressly conditional on your agreement to the terms and conditions of t he most recently dated version of smsc's standard terms of sale agreement dated bef ore the date of your order (the "terms of sale agreement"). the product may contain design de fects or errors known as anomalies which may caus e the product's functions to deviate from publis hed specifications. a nomaly sheets are availa ble upon request. smsc products are not designed, intended, authorized or warranted for use in any life support or other application where produc t failure could cause or contribute to personal injury or severe property damage. an y and all such uses without prio r written approval of an officer of smsc and further testing and/or modification will be fully at t he risk of the customer. copies of this document or other smsc literature, as we ll as the terms of sale agreement, may be obtained by visiting smsc?s website at http:// www.smsc.com. smsc disclaims and excludes any and all warranties, including without limitation any and all implied warranties of merchantability, fitness for a particular purpose, ti tle, and against infringement and the like, and any and all warranties arising from any course of dealing or usage of trade. in no event shall smsc be liable for any direct, incident al, indirect, special, punitive, or con sequential damages, or for lost data, profits, savings or revenues of any kind; regardless of th e form of action, whether based on contract, tort, negligence of smsc or others, strict li ability, breach of warranty, or otherwise; whether or not any remedy is held to have failed of its essential p urpose; and whether or not smsc has been advised of the possibility of such damages .
smsc usb97c201 page 3 rev. 11-05-03 datasheet table of contents 1.0 general d escription ............................................................................................................ ..................6 2.0 pin table ...................................................................................................................... ................................7 3.0 pin config uration.............................................................................................................. ......................8 3.1 qfp/tqfp 100 pin............................................................................................................... ........... 8 4.0 block di agram .................................................................................................................. ........................9 5.0 pin descri ptions ............................................................................................................... ......................10 5.1 buffer type des criptio ns .................................................................................................. 13 6.0 functional block descriptions .................................................................................................. ....14 6.1 mcu ............................................................................................................................ ................... 14 6.1.1 mcu memory map: code s pace............................................................................................... 14 6.1.2 mcu memory map: xdata s pace ............................................................................................. 15 6.1.3 mcu block regist er summa ry.................................................................................................. 16 6.1.4 mcu register descrip tions ...................................................................................................... .19 6.2 sie block...................................................................................................................... ................. 42 6.2.1 autonomous u sb prot ocol........................................................................................................ 43 6.2.2 usb events ..................................................................................................................... .......... 43 6.2.3 standard device reques ts....................................................................................................... .44 6.2.4 sie confi gurati ons............................................................................................................. ........ 44 6.3 ide controller descrip tion ..................................................................................................... ..... 45 6.3.1 ide confi gurati ons............................................................................................................. ........ 45 6.3.2 pio ide o perati ons ............................................................................................................. ...... 45 6.3.3 pio ide data prefet ching and po sting...................................................................................... 46 6.3.4 dma trans fers.................................................................................................................. ......... 46 6.3.5 ultra ata/66 synchronous dma oper ation .............................................................................. 46 6.3.6 ultra ata/66 operat ion ......................................................................................................... .... 47 6.4 sram bu ffers ................................................................................................................... ............ 48 6.5 8051 opti ons................................................................................................................... .............. 48 6.6 address mult iplexing........................................................................................................... ........ 48 6.7 sram time multipl exer operat ion ............................................................................................. 49 6.7.1 phase 0 (?0) ................................................................................................................... .......... 49 6.7.2 phase 1 (?1) ................................................................................................................... .......... 49 6.7.3 phase 2 (?2) ................................................................................................................... .......... 49 6.7.4 phase 3 (?3) ................................................................................................................... .......... 50 6.8 ep2 sram buffe r operat ion ...................................................................................................... .50 6.9 ep2 automatic buffe r operat ions .............................................................................................. 50 6.9.1 receive au to-toggl e ............................................................................................................ ..... 50 6.9.2 transmit buffer operat ion ...................................................................................................... ... 52 6.9.3 automatic transfe r operat ion ................................................................................................... 52 7.0 dc parame ters.................................................................................................................. ......................54 8.0 ac specific ations.............................................................................................................. .....................56 8.1 ata/at api ...................................................................................................................... .............. 56 8.2 usb2.0 timing.................................................................................................................. ............ 56 9.0 packagin g ...................................................................................................................... ...........................57 10.0 usb97c201 r evisions ............................................................................................................ ..................59
smsc usb97c201 page 4 rev. 11-05-03 datasheet tables table 1 - usb97c201 buffer type descriptions ..........................................................................................................13 table 2 - mcu c ode memory map .................................................................................................. ............................14 table 3 - mcu xdat a memory map ................................................................................................. ............................15 table 4 - mcu block register summary........................................................................................... ...........................16 table 5 - 8051 core sf r register summary....................................................................................... ........................18 table 6 - interrupt 0 source regist er .......................................................................................... .................................19 table 7 - inte rrupt 0 mask ..................................................................................................... .......................................20 table 8 - interrupt 1 source regist er .......................................................................................... .................................20 table 9 - inte rrupt 1 mask ..................................................................................................... .......................................21 table 10 - device revision r egist er ............................................................................................ ................................21 table 11 - device ident ification regist er...................................................................................... ................................21 table 12 - gpio dir ection r egist er............................................................................................. .................................22 table 13 - gpio ou tput r egist er ................................................................................................ .................................24 table 14 - gpio i nput regi ster................................................................................................. ...................................24 table 15 ? gpio interrupt st atus regist er (i nt4) ............................................................................... ........................24 table 16 ? gpio interr upt mask r egist er ........................................................................................ ............................25 table 17 - utility conf iguration regist er...................................................................................... .................................26 table 18 ? sram data port r egist er ............................................................................................. .............................26 table 19 ? sram addr ess regist er 1 ............................................................................................. ............................27 table 20 ? sram addr ess regist er 2 ............................................................................................. ............................27 table 21 - mcu clock source select............................................................................................. ..............................27 table 22 - wakeup source 1 register (int2) ..................................................................................... .........................28 table 23 - wakeup mask 1 r egist er .............................................................................................. ..............................28 table 24 ?usb addr ess regi ster ................................................................................................. ...............................29 table 25 ? sie confi guration r egist er .......................................................................................... ...............................29 table 26 - usb bus status r egist er ............................................................................................. ...............................30 table 27 ? usb bus st atus mask regist er........................................................................................ ..........................30 table 28 ? sie st atus r egist er ................................................................................................. ...................................31 table 29 ? sie stat us mask r egist er ............................................................................................ ..............................31 table 30 ? usb configurat ion number regist er................................................................................... .......................32 table 31 ? endpoint 0 rece ive control regist er ................................................................................. ........................32 table 32 ? endpoint 0 trans mit control regist er ................................................................................ ........................32 table 33 ? endpoint 1 rece ive control regist er ................................................................................. ........................32 table 34 ? endpoint 1 trans mit control regist er ................................................................................ ........................33 table 35 ? endpoint 2 control r egist er ......................................................................................... ..............................33 table 36 ? endpoint 0 receiv e byte count regi ster .............................................................................. .....................34 table 37 ? endpoint 0 transmi t byte count regi ster ............................................................................. .....................35 table 38 ? endpoint 1 receiv e byte count regi ster .............................................................................. .....................35 table 39 ? endpoint 1 transmi t byte count regi ster ............................................................................. .....................35 table 40 ? ram buffer write byte count r egister a1 ............................................................................. ....................35 table 41 ? ram buffer write byte count register a2 regi ster.................................................................... .......35 table 42 ? ram buffer write byte count r egister b1 ............................................................................. ....................36 table 43 ? ram buffer write byte count register b2 regi ster.................................................................... ...............36 table 44 ? ram buffer read by te count r egister a1 .............................................................................. ...................36 table 45 ? ram buffer read byte count register a2 regi ster..................................................................... ..............36 table 46 ? ram buffer read by te count r egister b1 .............................................................................. ...................36 table 47 ? ram buffer read byte count register b2 regi ster..................................................................... ..............36 table 48 ? nak r egister (int5) ................................................................................................. .................................36 table 49 ? nak mask regi ster ................................................................................................... .................................37 table 50 ? usb e rror regi ster.................................................................................................. ...................................37 table 51 ? msb ata data r egist er............................................................................................... ..............................38 table 52 ? lsb ata data r egist er............................................................................................... ...............................38 table 53 ? ata transfer count regi ster 0 ....................................................................................... ...........................38 table 54 ? ata transfer count regi ster 1 ....................................................................................... ...........................38 table 55 ? ata transfer count regi ster 2 ....................................................................................... ...........................38 table 56 ? ata transfer count regi ster 3 ....................................................................................... ...........................39 table 57 ?ata c ontrol r egist er ................................................................................................. .................................39 table 58 ?ata ultra dma timing regist er........................................................................................ ..........................40 table 59 ? ide ti ming regi ster ................................................................................................. ..................................40 table 60 ?ata slew rate control a regist er..................................................................................... .........................42 table 61 ?ata slew rate control b regist er..................................................................................... .........................42 table 62 ? ide tr ansaction timing.............................................................................................. ................................46 table 63 ? ultra ata/66 c ontrol signal assignm ents............................................................................. .................47 table 64 ?buffer sram m apping .................................................................................................. ...............................48
smsc usb97c201 page 5 rev. 11-05-03 datasheet table 65 ? ramwr_toggl e state c ontrol .......................................................................................... ....................51 figures figure 1 - mcu to exte rnal code space map...................................................................................... ..............14 figure 2 - gpio muxing block di agram........................................................................................... ...................23 figure 3 - receive buffer o peration............................................................................................ ....................51 figure 4 - transmit buffer o peration ........................................................................................... ..................52 figure 5 - automatic da ta transfer operation.................................................................................. ........53 figure 6 - 100 pin tqfp package ................................................................................................ ...........................57 figure 7 ? 100 pi n qfp pac kage ................................................................................................. ...........................58
smsc usb97c201 page 6 rev. 11-05-03 datasheet 1.0 general description the usb97c201 is a usb2.0 mass storage class peripheral controller intended for use with standard ata hard drives and standard atapi-5 devices. the device consists of a usb 2. 0 phy and sie, buffers, fast 8051 mi croprocessor with expanded scratchpad and 768 of program sram, and an ata- 66 compatible interface. provisions for external flash memory up to 64k bytes for program storage is provided. internal 768 bytes of program sram are also provided .. this internal sram is used for program storage to implement program upgrade via usb download to ?boot block? flash program memory, if desired. eight gpio pins are provided for controlling external power control elements and sensing specialized drive functions. provisions are made to allow dynamic attach and re-attach to the usb bus to allow hot swap of drives to be implemented.
smsc usb97c201 page 7 rev. 11-05-03 datasheet 2.0 pin table disk drive interface (27 pins) ide_d0 ide_d1 ide_d2 ide_d3 ide_d4 ide_d5 ide_d6 ide_d7 ide_d8 ide_d9 ide_d10 ide_d11 ide_d12 ide_d13 ide_d14 ide_d15 ide_nior ide_niow ide_irq ide_dack ide_drq ide_ncs0 ide_ncs1 ide_sa0 ide_sa1 ide_sa2 iordy usb interface (7 pins) usbd+ usbd- loopfltr rbias rterm fs+ fs- memory/io interface (28 pins) md0 md1 md2 md3 md4 md5 md6 md7 ma0 ma1 ma2 ma3 ma4 ma5 ma6 ma7 ma8 ma9 ma10 ma11 ma12 ma13 ma14 ma15 nmrd nior nmwr niow misc (15 pins) gpio0 gpio1 gpio2 gpio3 gpio4/nwe gpio5 gpio6 gpio7 xtal1/clkin xtal2 nreset ntest/ndbgstr tst_out/dbgout ntesten clkout power, grounds, and no connects (23 pins)
smsc usb97c201 page 8 rev. 11-05-03 datasheet 3.0 pin configuration 3.1 qfp/tqfp 100 pin nior niow vddio clkout ma15 ma14 gnd ma13 ma12 vdd ma11 ma10 ma9 ma8 vddio ma7 ma6 ma5 ma4 n.c. ma3 ma2 ma1 ma0 gnd usb97c201 1 25 51 75 gpio0 gpio1 gpio2 gpio3 gnd gpio4 gpio5 gpio6 gpio7 ntest0 ntest1 ntest2 vddio ide_d8 ide_d7 ide_d9 vdd ide_d6 ide_d10 gnd ide_d5 ide_d11 ide_d4 vddio ide_d12 rbias vdda fs+ usb+ usb- fs- rterm vssa xtal1/clkin xtal2 vssp loopfltr vddp n.c. n.c. md7 md6 md5 md4 gnd md3 md2 md1 md0 nreset ide_d3 ide_d13 ide_d2 gnd ide_d14 ide_d1 ide_d15 ide_d0 vddio ide_drq ide_niow ide_nior iordy gnd ide_dack ide_irq ide_sa1 ide_sa0 vdd ide_sa2 ide_ncs0 ide_ncs1 vddio nmwr nmrd
smsc usb97c201 page 9 rev. 11-05-03 datasheet 4.0 block diagram a d d r e s s d a t a b u s s usb 2.0 phy ( transceiver ) fast 8051 cpu core ata-66 interface mem/io bus 29pins gpio 8 pins 7 pins configuration and control clock generation xtal sie ( serial interface engine ) program memory/ io bus interrupt controller latch phase 0 latch phase 1 latch phase 2 60mhz 32 bit future phase 3 osc address xdata & sfr 8 bit data busses 64 bytes ep0tx 64 bytes ep0rx 64 bytes ep1tx 64 bytes ep1rx auto address generators address mux data @ 32 bit 15mhz sie control regs a d d r e s s address address address address ep0rx_bc ep1rx_bc ramrd_a/b ep0tx_bc ramwr_a/b ata/atapi drive 32 bit 15mhz data buss clockout 12 mhz optional external phy 512 bytes ep2 tx/rx buffer a address register 1.25kb sram 768 byte program/scratchpad sram granted sram access during phase 0 granted sram access during phase 1 granted sram access during phase 2 ep1tx_bc 512 bytes ep2 tx/rx buffer b
smsc usb97c201 page 10 rev. 11-05-03 datasheet 5.0 pin descriptions disk drive interface ide dma request ide_drq is this pin is the active high dma request from the ata/atapi interface. ide io read strobe ide_nior o20 this pin is the active low read signal for the interface. ide register address 1 ide_sa1 o20 this pin is the register select address bit 1 signal for the ata/atapi interface. ide register address 0 ide_sa0 o20 this pin is the register select address bit 0 signal for the ata/atapi interface. ide register address 2 ide_sa2 o20 this pin is the register select address bit 2 signal for the ata/atapi interface. ide data ide_d15 io20 this pin is the bi-directional data bus bit 15 signal for the ata/atapi interface. ide io write strobe ide_niow o20 this pin is active low write signal for the ata/atapi interface. ide dma acknowledge ide_ndack o20 this pin is the active low dma acknowledge signal for the ata/atapi interface. ide interrupt request ide_irq is this pin is the active high interrupt request signal for the ata/atapi interface. ide data ide_d13 io20 this pin is the bi-directional data bus bit 13 signal for the ata/atapi interface. ide data ide_d14 io20 this pin is the bi-directional data bus bit 14 signal for the ata/atapi interface. . ide chip select 0 ide_ncs0 o20 this pin is the acti ve low chip select 0 signal for the ata/atapi interface. ide chip select 1 0 ide_ncs1 o20 this pin is the ac tive low select 1 signal for the ata/atapi interface. ide data ide_d[0:12] io20 these pins are bits 0-12 of the ata/atapi bi- directional data bus. io ready iordy i this pin is the active high iordy signal from the ide drive.
smsc usb97c201 page 11 rev. 11-05-03 datasheet usb interface usb bus data usb- usb+ io-u these pins connect to the usb bus data signals. usb transceiver filter loopfltr this pin provides the ability to supplement the internal filtering of the transceiver with an external network, if required. usb transceiver bias rbias a 9.09 kohm precision resistor is attached from ground to this pin to set the transceiver?s internal bias currents. termination resistor rterm a precision 1.5kohm precision resistor is attached to this pin from a 3.3v supply. full speed usb data fs- fs+ io-u these pins connect to the usb- and usb+ pins through 31.6 ohm series resistors. memory/io interface memory data bus md[7:0] io12 these signals are used to transfer data between the internal cpu and the external program memory. memory address bus ma[15:0] o12 these signals address memory locations within the external memory. memory write strobe nmwr o12 program memory write; active low memory read strobe nmrd o12 program memory read; active low io read strobe nior o12 xdata space read; active low io write strobe niow o12 xdata space write; active low
smsc usb97c201 page 12 rev. 11-05-03 datasheet misc crystal input/external clock input xtal1/ clkin iclkx 12mhz crystal or external clock input. this pin can be connected to one terminal of the crystal or can be connected to an external 12mhz clock when a crystal is not used. crystal output xtal2 oclkx 12mhz crystal this is the other terminal of the crystal, or left open when an external clock source is used to drive xtal1/clkin. it may not be used to drive any external ci rcuitry other than the crystal circuit. clock output clkout o8 this pin produces a 30mhz clock signal independent of the processor clock divider. it is held inactive and low whenever the internal processor clock is stopped or is being obtained from the ring oscillator. general purpose i/o gpio[0:7] io20 these general purpose pins may be used either as inputs, edge sens itive interrupt inputs, or outputs. in addition, gpio0 has the capability of auto-toggli ng at a 1hz rate when used as an output. reset input nreset is this active low signal is used by the system to reset the chip. the active low pulse should be at least 100ns wide. test input ntest[0:2} ip these signals are used for testing the chip. user should normally l eave them unconnected. for board testing, all pads except these test inputs are included in an xnor chain, such that by tying ntest2 low, nior will reflect the toggling of a signal on each pin. circuit board continuity of the pin solder connections after assembly can be checked in this manner power, grounds, and no connects vdd +2.5v core power vddio +3.3v i/o power vddp +2.5 analog power vssp analog ground reference vdda +3.3v analog power vssa analog ground reference gnd ground reference nc no connect. these pins should not be connected externally.
smsc usb97c201 page 13 rev. 11-05-03 datasheet 5.1 buffer type descriptions table 1 - usb97c201 buffer type d escriptions buffer description i input is input with schmitt trigger io8 input/output with 8 ma drive o8 output with 8ma drive o12 output with 12ma drive io20 input/output with 20ma drive od12 open drain?.12ma sink o20 output with 20ma drive iclkx xtal clock input oclkx xtal clock output i/o-u defined in usb specification
smsc usb97c201 page 14 rev. 11-05-03 datasheet 6.0 functional block descriptions 6.1 mcu the 64k memory map is as follows from the 8051's viewpoint: 6.1.1 mcu memory map: code space the 8051 has a single flat 64k code space. external memory requires 80ns access times from address to data and less than 80ns output enable access times, assuming the use of the nmemr signal as oe on the memory. table 2 - mcu code memory map 8051 address code space access 0x0700-0xffff fixed memory external program memory 0x0400-0x06ff 768 bytes of fixed 16k flash page or 768 bytes of internal sram for program execution (see bit 7 of the util_cfg register for more information) external program memory or internal program sram 0x0000-0x03ff fixed memory external program memory 8051 mcu external code address space 0xffff internal 768 byte sram or external memory 0x0000 6 4 k 0x0400 0x0700 figure 1 - mcu to external code space map
smsc usb97c201 page 15 rev. 11-05-03 datasheet 6.1.2 mcu memory map: xdata space table 3 - mcu xdata memory map 8051 address data space access 0x3f30-0xffff external memory or i/o devices external (ior or iow active) 0x3f00-0x3f2f internal test registers (reserved access) do not access 0x33f7-0x3eff external memory or i/o devices external (ior or iow active) 033f6 external ata interface i/o external (ior or iow active) 0x31f8-0x33f5 external memory or i/o devices external (ior or iow active) 0x31f0-0x31f7 external ata interface i/o external (ior or iow active) 0x30f4-0x31ef external memory or i/o devices external (ior or iow active) 0x30f0-0x30f3 internal test regist ers (reserved access) do not access 0x0700-0x30ef external memory or i/o devices external (ior or iow active) 0x0400-0x06ff 768 byte sram internal 0x0000-0x03ff (see note 1) external (ior or iow active)(see note 1) note 1: this xdata space is accessed using movx instruct ions. a region of 8051 special function registers (sfr) is also accessible at 0x0100 to 0x01ff addresses usi ng the mov instructions. in addition to the normal 8051 sfrs, there are also numerous r untime registers in this sfr spac e. these runtime registers are external to the 8051, but in ternal to the usb97c201.
smsc usb97c201 page 16 rev. 11-05-03 datasheet 6.1.3 mcu block register summary table 4 - mcu block register summary (these registers are external to the 8051 design core) address name r/w description page runtime registers 80 isr_0 r/w int0 source register 19 93 imr_0 r/w int0 mask register 20 90 isr_1 r/w int1 source register 20 94 imr_1 r/w int1 mask register 21 95 dev_rev r device revision register 21 96 dev_id r device id register 21 utility registers 97 gpio_dir r/w gpio direction register 22 9a gpio_out r/w gpio data output register 24 9b gpio_in r gpio data input register 24 c0 gpio_irq r/w gpio interrupt status register (int4) 24 9c gpio_msk r/w gpio interrupt mask register (int4) 25 9d util_config r/w miscellaneous configuration register 26 9f sram_data r/w sram data port register 26 a1 sram_add1 r/w sram address 1 register 27 a2 sram_add2 r/w sram address 2 register 27 power management registers a5 clock_sel r/w 8051 clock select register 27 a0 wu_src_1 r/w wakeup sour ce 1 register (int2) 28 a6 wu_msk_1 r/w wakeup mask 1 register (int2) 28
smsc usb97c201 page 17 rev. 11-05-03 datasheet sie & buffer control registers a9 usb_add r/w usb address register 29 aa sie_conf r/w sie conf iguration register 29 ab usb_stat r/w usb bus status register 30 ac usb_msk r/w usb bus status mask register 30 b0 sie_stat r sie status register 31 ad usb_conf r/w usb confi guration number register 32 ae sie_msk r/w sie status mask register 31 af ep0rx_ctl r/w endpoint 0 receive control register 32 b1 ep0tx_ctl r/w endpoint 0 transmit control register 32 b2 ep1rx_ctl r/w endpoint 1 receive control register 32 b3 ep1tx_ctl r/w endpoint 1 transmit control register 33 b4 ep2_ctl r/w endpoint 2 control register 33 b5 ep0rx_bc r/w endpoint 0 rece ive byte count register 34 b6 ep0tx_bc r/w endpoint 0 transmit byte count register 35 b7 ep1rx_bc r/w endpoint 1 rece ive byte count register 35 c7 ep1tx_bc r/w endpoint 1 transmit byte count register 35 ce ramwrbc_a1 r/w ram buffer write byte count register a1 35 cf ramwrbc_a2 r/w ram buffer write byte count register a2 35 d1 ramwrbc_b1 r/w ram buffer write byte count register b1 36 d2 ramwrbc_b2 r/w ram buffer write byte count register b2 36 d3 ramrdbc_a1 r/w ram buffer read byte count register a1 36 d4 ramrdbc_a2 r/w ram buffer read byte count register a2 36 d5 ramrdbc_b1 r/w ram buffer read byte count register b1 36 d6 ramrdbc_b2 r/w ram buffer read byte count register b2 36 d7 nak r/w nak status register 36 d9 nak_msk r/w nak mask register 37 da usb_err r usb error register 39 ata configuration registers db msb_ata r/w msb ata data register 38 dc lsb_ata r/w lsb ata data register 38 dd ata_ctl r/w ata control register 39 de ata_dma r/w ata ultra dma timing register 40 df ide_tim r/w ide timing register 40 e1 ata_cnt0 r/w ata transfer count register 0 38 e2 ata_cnt1 r/w ata transfer count register 1 38 e3 ata_cnt2 r/w ata transfer count register 2 38 e4 ata_cnt3 r/w ata transfer count register 3 39 e5 ata_srca r/w ata slew rate control a register 42 e6 ata_srcb r/w ata slew rate control b register 42
smsc usb97c201 page 18 rev. 11-05-03 datasheet table 5 - 8051 core sfr register summary these registers are part of the 8051 design core itself. register bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 address sp 81h dpl0 82h dph0 83h dpl1 84h dph1 85h dps 0 0 0 0 0 0 0 sel 86h pcon smod0 ? 1 1 gf1 gf0 stop idle 87h tcon tf1 tr1 tf0 tr0 ie1 it1 ie0 it0 88h tmod gate c/t m1 m0 gate c/t m1 m0 89h tl0 8ah tl1 8bh th0 8ch th1 8dh ckcon t2m t1m t0m md2 md1 md0 8eh spc_ fnc 0 0 0 0 0 0 0 wr s 8fh exif ie5 ie4 ie3 ie2 1 0 0 0 91h mpage 92h scon0 sm0_0 sm1_0 sm2_0 ren_0 tb8_0 rb8_0 ti_0 ri_0 98h sbuf0 99h ie ea es1 et2 es0 et1 ex1 et0 ex0 a8h ip 1 ps1 pt2 ps0 pt1 px1 pt0 px0 b8h tl2 cch th2 cdh psw cy ac f0 rs1 rs0 ov f1 p d0h eicon smod1 1 epfi pfi wdti 0 0 0 d8h acc e0h eie 1 1 1 ewdi ex5 ex4 ex3 ex2 e8h b f0h eip 1 1 1 pwdi px5 px4 px3 px2 f8h notes: bit wrs of the spc_fnc register cont rols the operation of mo vx writes the program or xdata bus of the 8051. setting it to 0 ( the reset state) , will direct writes to the xdata bus , either to internal or external destinations, while setting it to 1 will allow writes to the pr ogram memory bus to occur, either internally( if the 768 sram is the target) or externally. bits md2:0 of the ckcon sfr register (8eh) control the cycle timing for external accesses using the nior and niow signals. this allows slow peripheral devices to be attached. the values and corresponding strobe widths are shown below: md2 md1 md0 nior/niow stobe (clks) nior/niow strobe (at 30mhz) 0 0 0 2 66ns 0 0 1 4 133ns 0 1 0 8 267ns 0 1 1 12 400ns 1 0 0 16 533ns 1 0 1 20 667ns 1 1 0 24 800ns 1 1 1 28 933ns note: the strobe width will vary with the ac tual clock divider used for the proce ssor. for example if, 16 mhz is used, an md[2:0] value of 111 will result in a 28 clock strobe or 1866ns.
smsc usb97c201 page 19 rev. 11-05-03 datasheet 6.1.4 mcu register descriptions 6.1.4.1 mcu runtime registers table 6 - interrupt 0 source register isr_0 (0x80 - reset=0x0c) interrupt 0 source register bit name r/w description 7 usb_stat r 1= usb bus system event has occurred. check usb_stat register for the specific event (s). this must be cleared by clearing the usb_stat register. 6 setup r/w 1= a setup packet was received on endpoint 0. the ep0rx bit of isr_1 will not be set. if another setup packet is received on endpoint 0 while this bit is high, the bit will go low and then immediately high again, to signal the duplicate setup. if all other bits in this register are clear and the int0 of the 8051is configured for edge triggering, then another interrupt will be generated within the 8051. the firmware must clear this bit by writing a "1" to it to allow the enpoint 0 buffer to receive subsequent data packets during the setup transaction. receipt of these pa ckets will set ep0rx in isr_1. 5 reserved r this bit always reads a ?0?. 4 ata_irq r/w external interrupt i nput from the ata-66 interface. 1 = an ata interrupt has occurred. 3 ramrd_b r/w 1 = the current trans fer from the sram b buffer has been completed. see sections 6.7 and 6. 9 for more detail. this bit is also cleared by writing a ?1? to the ramrd_toggle bit of the ep2_ctl register. 2 ramrd_a r/w 1 = the current trans fer from the sram a buffer has been completed. see sections 6.7 and 6. 9 for more detail. . this bit is also cleared by writing a ?0? to the ramrd_toggle bit of the ep2_ctl register. 1 ramwr_b r/w 1 = the current transfer to the sram b buffer has been completed. this bit may be cl eared by the internal hardware state machine while operating in ?auto transfer? mode. see sections 6.7 and 6.9 for more detail. 0 ramwr_a r/w 1 = the current transfer to the sram a buffer has been completed. this bit may be cl eared by the internal hardware state machine while operating in ?auto transfer? mode. see sections 6.7 and 6.9 for more detail. the bits in this register (except bit 7) are set to thei r por values by writing a ?1? to the corresponding bit. if not masked by the corresponding bit in the imr0 mask register , a ?1? on any of these bits will generate a ?1? on the 8051 core?s external int0 input.
smsc usb97c201 page 20 rev. 11-05-03 datasheet table 7 - interrupt 0 mask imr_0 (0x93- reset=0xff) interrupt 0 mask register bit name r/w description 7 usb_stat r/w usb bus system event interrupt mask 0 = enable interrupt 1 = mask interrupt 6 setup r/w setup interrupt mask 0 = enable interrupt 1 = mask interrupt 5 reserved r/w reserved. 4 ata_irq r/w external ata-66 interrupt input mask 0 = enable interrupt 1 = mask interrupt 3 ramrd_b r/w sram buffer b output interrupt mask 0 = enable interrupt 1 = mask interrupt 2 ramrd_a r/w sram buffer a output interrupt mask 0 = enable interrupt 1 = mask interrupt 1 ramwr_b r/w sram buffer b input interrupt mask 0 = enable interrupt 1 = mask interrupt 0 ramwr_a r/w sram buffer a input interrupt mask 0 = enable interrupt 1 = mask interrupt note1: the mask bits do not prevent the status in the isr_0 register fr om being set, only from generating an interrupt. table 8 - interrupt 1 source register isr_1 (0x90- reset=0x00) interrupt 1 source register bit name r/w description 7 zlp_ep0 r/w 1= a zlp has been received on ep0rx. 6 reserved r this bit always reads a ?0?. 5 ata_pio r this bit reflects that stat e of the pio_complete bit (bit 6) of the ata_ctl register. it cannot be written directly. 4 ep1rx r/w 1 = a packet was successfully received on endpoint 1 and stored in the buffer sram. out tokens will be nak?d until this bit is cleared. 3 ep1tx r/w 1 = a packet was successfully transmitted on endpoint 1 from the buffer sram. in tokens will be nak?d until this bit is cleared. 2 ep0rx r/w 1 = a non-setup, non zlp packet (see isr_0 setup bit) was successfully received on endpoint 0 and stored in the buffer sram. out tokens will be nak?d until this bit is cleared. 1 ep0tx r/w 1 = a packet was successfully transmitted on endpoint 0 from the buffer sram. in tokens will be nak?d until this bit is cleared. 0 suspend r/w suspend ? if 3ms of idle state are detected by the hardware, then this bit will be set. note 1: the bits (except for bit 5)in this register are clear ed by writing a ?1? to the corresponding bit. if not masked by the corresponding bit in the imr1 mask register, a ?1? on any of these bits will gener ate a ?1? on the 8051 core?s external int1 input.
smsc usb97c201 page 21 rev. 11-05-03 datasheet table 9 - interrupt 1 mask imr_1 (0x94- reset=0xff) interrupt 1 mask register bit name r/w description 7 zlp_ep0 r/w zero length packet interrupt mask 0 = enable interrupt 1 = mask interrupt 6 resereved r/w reserved. this bit should never be written to a ?0?. 5 ata_pio r/w ata pio co mplete interrupt mask 0 = enable interrupt 1 = mask interrupt 4 ep1rx r/w endpoint 1 received packet interrupt mask 0 = enable interrupt 1 = mask interrupt 3 ep1tx r/w endpoint 1 transmitted packet interrupt mask 0 = enable interrupt 1 = mask interrupt 2 ep0rx r/w endpoint 0 received packet interrupt mask 0 = enable interrupt 1 = mask interrupt 1 ep0tx r/w endpoint 0 transmitted packet interrupt mask 0 = enable interrupt 1 = mask interrupt 0 suspend r/w suspend interrupt mask 0 = enable interrupt 1 = mask interrupt note 1: the mask bits do not prevent the status in the isr_1 register fr om being set, only from generating an interrupt. table 10 - device revision register dev_rev (0x95- reset=0xxx) device revision register bit r/w description [7:0] xxh r this register defines additional revision information used internally by smsc. the value is silicon revision dependent. table 11 - device identification register dev_id (0x96- reset=0x12) device identifica tion register bit r/w description [7:0] 12h r this register defines additional revision information used internally by smsc
smsc usb97c201 page 22 rev. 11-05-03 datasheet 6.1.4.2 utility registers table 12 - gpio direction register gpio_dir (0x97- reset=0x00) gpio direction register bit name r/w description 7 gpio7 r/w gpio7 direction 0 = in 1 = out 6 gpio6 r/w gpio6 direction 0 = in 1 = out 5 gpio5 r/w gpio5 direction 0 = in 1 = out 4 gpio4/nwe r/w gpio4 direction 0 = in 1 = out 3 gpio3/t1 r/w gpio3 direction 0 = in 1 = out 2 gpio2/t0 r/w gpio2 direction 0 = in 1 = out 1 gpio1/txd r/w gpio1 direction 0 = in 1 = out 0 gpio0/rxd r/w gpio0 direction 0 = in 1 = out
smsc usb97c201 page 23 rev. 11-05-03 datasheet gpio0 gpio0 data out rxd "uart p3.0" gpio0 dir gpio0 data in 0 1 s "0" gpio1 0 1 s gpio1 data out txd "uart p3.1" gpio1 dir gpio1 data in 0 1 s tbd 8051 "t1 timer p3.5" gpio3 gpio3 data out gpio3 dir gpio3 data in 0 1 s mux enable 8051 "t0 timer p3.4" tbd gpio2 gpio2 data out gpio2 dir gpio2 data in gpio[7:5] gpio direction bit gpio in data gpio out data gpio4/ nwe 0 1 s gpio4 data out ide_niow gpio4 dir gpio4 data in edge detector edge detector edge detector edge detector edge detector mux enable mux enable mux enable 1 hz gate enable mux enable figure 2 - gpio muxing block diagram
smsc usb97c201 page 24 rev. 11-05-03 datasheet table 13 - gpio output register gpio_out (0x9a- reset=0x00) gpio data output register bit name r/w description 7 gpio7 r/w gpio7 ou tput buffer data 6 gpio6 r/w gpio6 ou tput buffer data 5 gpio5 r/w gpio5 ou tput buffer data 4 gpio4/nwe r/w gpio4 output buffer data 3 gpio3/t1 r/w gpio3 output buffer data 2 gpio2/t0 r/w gpio2 output buffer data 1 gpio1/txd r/w gpio1 output buffer data 0 gpio0/rxd r/w gpio0 output buffer data table 14 - gpio input register gpio_in (0x9b- reset=0x00) gpio input register bit name r/w description 7 gpio7 r gpio7 input buffer data 6 gpio6 r gpio6 input buffer data 5 gpio5 r gpio5 input buffer data 4 gpio4/nwe r gpio4 input buffer data 3 gpio3/t1 r gpio3 input buffer data 2 gpio2/t0 r gpio2 input buffer data 1 gpio1/txd r gpio1 input buffer data 0 gpio0/rxd r gpio0 input buffer data table 15 ? gpio interrupt status register (int4) gpio_irq (0xc0- reset=0x00) gpio interrupt status register bit name r/w description 7 gpio7_irq r/w 1 = a level change has occurred on gpio7. 6 gpio6_irq r/w 1 = a level change has occurred on gpio6. 5 gpio5_irq r/w 1 = a level change has occurred on gpio5. 4 gpio4_irq r/w 1 = a level change has occurred on gpio4. 3 gpio3_irq r/w 1 = a level change has occurred on gpio3. 2 gpio2_irq r/w 1 = a level change has occurred on gpio2. 1 gpio1_irq r/w 1 = a level change has occurred on gpio1. 0 gpio0_irq r/w 1 = a level change has occurred on gpio0. note 1: writing a ?1? (one) to a bit clears the bit and enables the detection of the next leve l transition. if not masked by the corresponding bit in the gpio_msk register, ?1? in any bit in this register will force a ?1? on the 8051 core?s external int4 interrupt input.
smsc usb97c201 page 25 rev. 11-05-03 datasheet table 16 ? gpio interrupt mask register gpio_msk (0x9c- reset=0xff) gpio interrupt mask register bit name r/w description 7 gpio7_msk r/w 1 = prevents a high in the corresponding bit in the gpio_irq register from generating an interrupt on the int4 input to the 8051. 6 gpio6_msk r/w 1 = prevents a high in the corresponding bit in the gpio_irq register from generating an interrupt on the int4 input to the 8051.. 5 gpio5_msk r/w 1 = prevents a high in the corresponding bit in the gpio_irq register from generating an interrupt on the int4 input to the 8051... 4 gpio4_msk r/w 1 = prevents a high in the corresponding bit in the gpio_irq register from generating an interrupt on the int4 input to the 8051... 3 gpio3_msk r/w 1 = prevents a high in the corresponding bit in the gpio_irq register from generating an interrupt on the int4 input to the 8051... 2 gpio2_msk r/w 1 = prevents a high in the corresponding bit in the gpio_irq register from generating an interrupt on the int4 input to the 8051... 1 gpio1_msk r/w 1 = prevents a high in the corresponding bit in the gpio_irq register from generating an interrupt on the int4 input to the 8051... 0 gpio0_msk r/w 1 = prevents a high in the corresponding bit in the gpio_irq register from generating an interrupt on the int4 input to the 8051...
smsc usb97c201 page 26 rev. 11-05-03 datasheet table 17 - utility configuration register util_config (9d reset=0x00) utility configuration register bit name r/w description 7 sramsw r/w 1 = the 768 byte sram is located at 0x0400- 0x06ff in the code space, instead of external memory. 0 = the 768 byte sram is located at 0x0400- 0x06ff in the xdata space. 6 reserved r/w reserved. this bit should never be written to a ?1?. 5 gpio0_tog r/w 1 = gpio0 output auto toggle enabled. 0 = disabled, normal operation occurs. 4 gpio4/nwe r/w gpio4/sof output select mux 0 = gpio4 1 = the ide_niow signal is output. 3 gpio3/t1 r/w p3.5 timer 1 input trigger source 0 = gpio3 1 = tbd 2 gpio2/t0 r/w p3.4 timer 0 input trigger source 0 = gpio2 1 = tbd 1 gpio1/txd r/w gpio1/txd output select mux 0 = gpio1 1 = p3.1 0 gpio0/rxd r/w p3.0 rxd /gpio0 input select mux 0 = rxd<=gpio0 1 = rxd<='0' note 1: gpio0, when used as an output, will automatically toggle with 1second period and 50% duty cycle if gpio0_tog is high. table 18 ? sram data port register sram_data (0x9f- reset=0x00) sram data port register bit name r/w description [7:0] sram_data [7:0] r/w data to be read or written from/to the buffer sram. the address of the data is determined by the sram_add1/2 registers. data to be written will be done so upon write of this register. while reads of the register always reflects the data at the memory location. note: a delay equal to at least one nop must exist between setting the address in the sram_addx registers and reading or writing this register. no delay is required in auto- increment operation.
smsc usb97c201 page 27 rev. 11-05-03 datasheet table 19 ? sram address register 1 sram_add1 (a1 reset=0x00) sram address register 1 bit name r/w description [7:0] sram_add [7:0] r/w this register contains lower bits of the address in the buffer ram that the sram_data register reads or writes. table 20 ? sram address register 2 sram_add2 (0xa2- reset=0x00) sram address register 2 bit name r/w description [7:3] reserved r these bits always read ?0?. [2:0] sram_add [10:8] r/w this register contains upper bits of the address in the buffer ram that the sram_data register reads or writes. note: these registers will auto in crement upon each read or write to the sram_data register. 6.1.4.3 mcu power management registers table 21 - mcu clock source select clock_sel (0xa5 - reset=0x40) mcu clock source select bit name r/w description 7 sleep r/w when pcon. 0 = 1 and sleep has been set to 1, the ring oscillator will be gated off, then all oscillators will be turned off for maximum power savings. 6 rosc_en r/w 0 = ring oscillator disable. 1 = ring oscillator enable. rosc_en must be set to 1 before the mcu can be switc hed to the internal ring oscillator clock source. 5 mcuclk_src r/w mcuclk_src overrides mcuclk_x clock select and switches the mcu to the ring oscillator. 0 = use ring oscillator. ro sc_en must be enabled by the mcu first. 1 = use clock specified in mcu_clk_[1:0] [4:3] mcu_clk[1:0] r/w [4:3] = 00: 3.75mhz [4:3] = 01: 7.5mhz [4:3] = 10: 15mhz [4:3] = 11: 30mhz 2 clkvalid r reflects the state of the phy clkvalid signal. when 1, indicates that the internal clocks are stable and can be used instead of the ring oscilla tor. after restarting the clocks with the suspend bit in the sie_conf register, the code should wait 50us before polling this bit. this bit is polled until it reads a ?1? to see if the clocks are settled before accessing any ot her non 8051 registers. 1:0] reserved r always reads ?0?. note 1: the 8051 may program itself to run off of an inte rnal ring oscillator having a frequency range between 8 and 24mhz. this is not a precise clock, but is meant to provide the 8051 with a clock source, without running the 30mhz crystal oscillator or the pll note 2: switching between fast and slow clocks is recommended to save power. note 3: clock switching can be done on the fly as long as both clocks are running. when switching, it takes a total of six clocks (3 clocks of the original clock plus 3 clocks of the switching clock) to guarantee the switching.
smsc usb97c201 page 28 rev. 11-05-03 datasheet note 4: time tbd is required from rosc_en=1 to mcuclk_src=0. table 22 - wakeup source 1 register (int2) wu_src_1 (0xa0 ? reset=0x00) wakeup source 1 bit name r/w description [7:3] reserved r/w reserved 2 usb_reset r/w this bit is set when t he sie detects simultaneous logic lows on d+ and d- (single-ended 0) for 32 to 64 full speed bit times, or 4 to 8 low speed bit times (or 2.5 smsc usb97c201 page 29 rev. 11-05-03 datasheet 6.1.4.4 sie & buffer control registers table 24 ?usb address register usb_add (0xa9 ? reset=0x00) usb address register bit name r/w description 7 reserved r this bit always reads a ?1?. [6:0] addr[6:0] r this is the usb bus address that the device will respond to when the en bit is set. these bits are cleared for a usb_reset condition. this is automatically set during enumeration by the sie. table 25 ? sie confi guration register sie_conf (0xaa - reset=0x40) sie configuration register bit name r/w description 7 reserved r this bit always reads a ?0?. 6 disconnect r/w 1 = forces the phy to the disconnect state, removing the rterm resistor from the usb+ pin and forcing the phy to ignore signaling on the usb bus. 0= normal operation. [5:4] reserved r these bits always read ?0?. 3 reserved r/w this bit is reserved. it must never be written to a ?1?. 2 speed r 1 = high speed operation, if host is capable (see usb_stat register). 0 = full speed operation. this bit is automatically set by the internal sie during enumeration . 1 resume r/w 1 = forces the sie to tr ansmit resume signaling (?k? state) on the line, if this capabilit y has been enabled by the set_feature_remote_wakeup command form the host. this bit is set by the 8051 after it wake s up from a power down state, for remote wakeup operation. the usb97c201 appropriately times the duration of this signaling in accor dance with the usb specifications. this bit will not be automatically cleared at the end of the resume signaling. note: in order for the usb97c201 to generate a remote wake-up, the suspend bit in this register must be cleared (0). 0 = normal operation 0 suspend r/w 1 = forces the usb97c201?s phy into power down mode for suspend operation and to enable the detection of resume events and the setting of the resume interrupts in usb_stat and wu_src_1 registers. 0 = this bit is cleared by t he 8051 during wake-up operations (resume or remote resume) to re-power the phy and enable its clocks. note: in order for the usb97c201 to generate a remote wake-up using bit 1 of this register, this bit must be cleared (0). note 1: if a setup packet is received on endpoint 0 that is not automatically handled by the sie (see section 6.2.36.2.1) : 1. any stall conditions will be cleared for ep0. 2. an interrupt is generated, if unmasked, by the setup bit in the isr_0 register. the reception of the packet will be i ndicated by the setup bits in t he isr_0 register being set. the pid sequence is set to data-1 for both directions after a valid setup/data-0 transaction.
smsc usb97c201 page 30 rev. 11-05-03 datasheet table 26 - usb bus status register usb_stat (0xab - reset=0x00) usb bus status register bit name r/w description [7] reserved r this bit always reads ?0?. 6 ep2_err r/w 1 = indicates that a to ken in the opposite direction inferred by the dir bit of ep2_ctl r egister was received, ie an unexpected in or out token. 5 2.0 r/w 1 = host is high speed capabl e. this bit is set if high speed signaling is received from the host. 4 usb_resume r/w 1 = indicates that resume signaling has been detected. this is only valid if the usb97c201 is in the suspend state via bit 0 of t he sie_conf register. 3 usb_reset r/w 1 = indicates t hat a usb reset has been detected. 2 error r 1 = indicates that a usb error has been detected. see the usb_err register for details. this bit is cleared by clearing the usb_err register. 1 reserved r this bit always reads ?0?. 0 reserved r this bit always reads ?0?. the bits in this register (except bit 2) are cleared by writing a ?1? to the corresponding bit. these bits are ored, if unmasked in the usb_msk register, and drive a latch for the usb_stat bit in the isr_0 register. table 27 ? usb bus status mask register usb_msk (0xac - reset=0xff) usb bus status mask register bit name r/w description [7] reserved r this bit always reads ?1?. 6 ep2_err r/w 1 = prevents generation of the usb_stat bit in the isr_0 register when the ep2_err bit is set in the usb_stat register. 5 2.0 r/w 1 = prevents generation of the usb_stat bit in the isr_0 register when the 2.0 bit is se t in the usb_stat register. 4 usb_resume r/w 1 = prevents generation of the usb_stat bit in the isr_0 register when the usb_resume bit is set in the usb_stat register. 3 usb_reset r/w 1 = prevents generation of the usb_stat bit in the isr_0 register when the usb_reset bit is set in the usb_stat register. 2 error r/w 1 = prevent s generation of the usb_stat bit in the isr_0 register when the error bit is set in the usb_stat register. 1 reserved r this bit always reads ?1?. 0 reserved r this bit always reads ?1?. note1: the mask bits do not prevent the st atus in the usb_stat register from being set, only from setting the usb_stat bit in the isr_0 register.
smsc usb97c201 page 31 rev. 11-05-03 datasheet table 28 ? sie status register sie_stat (0xb0 - reset=0x00) sie status register bit name r/w description [7] set_stall r/w set to ?1? if a set_feature_endpoint_halt command is received on any endpoint by the sie. which endpoint is stalled can be determined by examining their ctl registers. 6 clr_stall r/w set to ?1? if a clear_feature_endpoint_halt command is received on any endpoi nt by the sie. which endpoint?s stall condition is cleared can be determined by examining their ctl registers. 5 set_conf r/w set to ?1? if a set_configuration command is received on endpoint 0 by the sie and the resulting configuration is set and reported in the usb_config register. 4 reserved r this read only bit always returns the value of ?0?. 3 set_intf r/w set to ?1? if a set_interface command is received on endpoint 0 by the sie. 2 reserved r- this read only bit always returns the value of ?0?. 1 set_remwu r/w set to ?1? if a set_feature_remote_wake_up command is received on endpoint 0 by the sie. 0 clr_remwu r/w set to ?1? if a clear_feature_endpoint_remote_wake_up command is received on endpoint 0 by the sie. note: these bits are masked by the sie_m sk register and or?d to drive the in t3 interrupt line into the 8051 core. they may be cleared writing a ?1? to the bit location. table 29 ? sie status mask register sie_msk (0xae - reset=0xff) sie status mask register bit name r/w description [7] set_stall r/w 1= disable interrupt generation. 0= enable interrupt generation. 6 clr_stall r/w 1= disabl e interrupt generation. 0= enable interrupt generation. 5 set_conf r/w 1= disable interrupt generation. 0= enable interrupt generation. 4 reserved r this read only bit always returns the value of ?1?. 3 set_intf r/w 1= disabl e interrupt generation. 0= enable interrupt generation. 2 reserved r this read only bit always returns the value of ?1?. 1 set_remwu r/w 1= dis able interrupt generation. 0= enable interrupt generation. 0 clr_remwu r/w 1= dis able interrupt generation. 0= enable interrupt generation. note: the mask bits do not prevent the stat us in the sie_stat register from being set, only from driving the int3 line of the 8051 core high.
smsc usb97c201 page 32 rev. 11-05-03 datasheet table 30 ? usb configuration number register usb_conf (0xad - reset=0x00) usb configuration number register bit name r/w description [7:4] reserved r always returns a ?0?. {3:0} config r reflects the curr ent configurati on number of the usb97c201 system as set by the host. table 31 ? endpoint 0 recei ve control register ep0rx_ctl (0xaf - reset=0x00) endpoint 0 receive control register bit name r/w description [7:4] reserved r this bit always reads ?0?. 3 dtog r this bit reflects the dat a toggle state of the last received data token. 2 stall r/w when set to a ?1?, ep0 will respond with the stall handshake to out tokens except a setup, which it will ack unconditionally. either the in ternal sie or the user may set this bit. receipt of a setup packet or usb reset clears this bit. writing a ?0? to this bit has no effect. 1 reserved r this bit always reads ?0?. 0 enable r reads 1 if ep0 receive is enabled by sie. table 32 ? endpoint 0 transmit control register ep0tx_ctl (0xb1 - reset=0x00) endpoint 0 transmit control register bit name r/w description 7 reserved r this bit always reads ?0?. 6 reserved r this bit always reads ?0?. 5 reserved r this bit always reads ?0?. 4 tx r/w when written with a ?1?, a llows the sie to transfer data from the buffer sram to ep0. out tokens will be nak?d until the transfer has been completed. it is cleared by the sie when transmission of the packet has been completed. 3 reserved r this bit always reads ?0?. 2 stall r/w when set to a ?1?, ep0 tx will respond with the stall handshake to in tokens. . either the internal sie or the user may set this bit. receipt of a setup packet or usb reset clears this bit. writing a ?0? to this bit has no effect. 1 reserved r this bit always reads ?0?. 0 enable r reads ?1? if ep0 transmit is enabled by the sie. table 33 ? endpoint 1 recei ve control register ep1rx_ctl (0xb2 - reset=0x00) endpoint 1 receive control register bit name r/w description [7:4] reserved r this bit always reads ?0?. 3 dtog r this bit reflects the dat a toggle state of the last received data token. 2 stall r/w when set to a ?1?, ep1 rx will respond with the stall handshake to out tokens. . either the internal sie or the user may set this bit. receipt of a ?clear feature
smsc usb97c201 page 33 rev. 11-05-03 datasheet ep1rx_ctl (0xb2 - reset=0x00) endpoint 1 receive control register bit name r/w description endpoint clear? command for this endpoint or usb reset clears this bit. writing a ?0? to this bit has no effect. 1 reserved r this bit always reads ?0?. 0 enable r/w ep1 receive is enabled in t he sie if this bit is set to a ?1?, otherwise, it is disabled. table 34 ? endpoint 1 transmit control register ep1tx_ctl (0xb3 - reset=0x00) endpoint 1 transmit control register bit name r/w description 7 reserved r this bit always reads ?0?. 6 reserved r this bit always reads ?0?. 5 reserved r this bit always reads ?0?. 4 tx r/w when written with a ?1?, a llows the sie to transfer data from the buffer sram to ep1. until the transmission or reception is complete, out will be nak?d. it is cleared by the sie when transmission of the packet has been completed. 3 reserved r this bit always reads ?0?. 2 stall r/w when set to a ?1?, ep1 tx will respond with the stall handshake to in tokens. . either the internal sie or the user may set this bit. receipt of a ?clear feature endpoint clear? command for this endpoint or usb reset clears this bit. writing a ?0? to this bit has no effect. 1 reserved r this bit always reads ?0?. 0 enable r ep1 transmit is enabled in the sie if this bit is set to a ?1?, otherwise, it is disabled. table 35 ? endpoint 2 control register ep2_ctl (0xb4 - reset=0x00) endpoint 2 control register bit name r/w description 7 dir r/w setting this bit to a ?1? indi cates that the data flow is from the ata interface to the sie, a ?0? indicates the opposite direction. when a ?1?, the si e will set the ep2_err bit in the usb_status register if an out token is received. when a ?0?, the ep2_err bit set if the sie receives an in token. 6 ramwr_ togvalid r/w if this bit is set to a ?1? when writes to this register occur, then the value of bit 5 written to this register will have effect. if cleared, then the values of bi t 5, when this register is written, is ignored. this bit always returns ?0? on reads. 5 ramwr_ toggle r/w writing a ?0? to this bit will enable writing of the 512 byte sram a buffer and clear the ramwrbc_a1/2 registers, while writing a ?1? will select loading of the sram b buffer and clear the ramwrbc_b1/2 registers. this bit indicates which interleaved buffer is currently or was last written with data. the ramwrbc_a and ramwrbc_b registers contain the byte counts for the last write to the a and b input buffers, respectively. see sect ions 6.4, 6.5, and 6.9 for more information. to avoid inte rrupting a transfer that is in progress, it is impor tant not to write th is bit until it is completed. note that if au totoggle mode is enabled by bit 3 of the ata_ctl register, this bit will reflect that current buffer being written(1=b, 0=a).
smsc usb97c201 page 34 rev. 11-05-03 datasheet ep2_ctl (0xb4 - reset=0x00) endpoint 2 control register bit name r/w description w writing a ?0? to this bit will begin the output of the 512 byte sram a buffer to either t he sie or the ata interface, depending on the value of the dir bi t in this register, while writing a ?1? will begin outputting of sram b buffer. see sections 6.4, 6. 5, and 6.9 for more information. the ramrdbc_a and ramrdbc_b registers determine how many bytes will be output from either the a or b sram buffer, respectively. writing this bit to a ?1? will clear the ramrd_b bit in the isr_0 register, while writing it to ?0? will clear the ramrd_a bit in that register. note: a delay of at least one nop must exist before reading the ramrd_a or ramrd_b bits in isr0 when writing this bit. 4 ramrd_ toggle r upon reads, this bit will reflect the current or last buffer being read (1=b, 0=a). 3 stall_ rx r/w when set to a ?1?, ep2 rx will respond with the stall handshake to all tokens. . either the internal sie or the user may set this bit. this bit is only cleared when a set feature endpoint 2rx clear or set configuration command is received on ep0 from the host, or by a usb reset. 2 stall_tx r/w when set to a ?1?, ep2 tx will respond with the stall handshake to all tokens. . either the internal sie or the user may set this bit. this bit is only cleared when a set feature endpoint 2tx clear or set configuration command is received on ep0 from the host, or by a usb reset. 1 ramrd_ togvalid r/w this bit always reads ?0?. if this bit is set to a ?1? when writes to this register occur, then the value of bit 4 written to this register will have effect. if clear ed, then the values of bit 4, when this register is written, is ignored. 0 enable r reads ?1? if ep2 is enabled by the sie in either direction. notes: if the dir bit is changed, then the ramw r_toggle bit must be written by the user to assure that the proper buffer is selected. the user can not rely on reading the value of this bit to determine which buffer is active immediately after changing the dir bit. bit 2, above, will set the stall condition for both tx and rx directions of ep2. if the host clears the stall in either direction, then both direct ion?s stall condition will be cleared. bit 3 above will be reserved and always read a ?0?. table 36 ? endpoint 0 receive byte count register ep0rx_bc (0xb5 - reset=0x00) endpoint 0 receive byte count register bit name r/w description 7 reserved r this bit always reads ?0?. 6 64byte r 1 = indicates that 64 bytes were received. [5:0] count r indicates the byte c ount of the packet received on ep0 and stored in sram beginning at address 0x0000. note: this register is updated at the end of a transfer and is act ually the least significant bits of the ending address in the sram buffer.
smsc usb97c201 page 35 rev. 11-05-03 datasheet table 37 ? endpoint 0 transmit byte count register ep0tx_bc (0xb6 - reset=0x00) endpoint 0 transmit byte count register bit name r/w description 7 reserved r this bit always reads ?0?. 6 64byte r/w 1 = indicates that 64 bytes are to be transmitted. [5:0] count r/w indicates the byte c ount of the packet to be sent on ep0 and stored in sram beginning at address 0x0040. note: a zero length packet may be sent by just clearing th is register and setting the tx bit in the ep0tx_ctl register. table 38 ? endpoint 1 receive byte count register ep1rx_bc (0xb7 - reset=0x00) endpoint 1 receive byte count register bit name r/w description 7 reserved r this bit always reads ?0?. 6 64byte r 1 = indicates that 64 bytes were received. [5:0] count r indicates the byte c ount of the packet received on ep1 and stored in sram beginning at address 0x0080. notes: this register is updated at t he end of a transfer and is actually the leas t significant bits of the ending address in the sram buffer. this register is cleared if a setup packet is received on ep0. table 39 ? endpoint 1 transmit byte count register ep1tx_bc (0xc7 - reset=0x00) endpoint 1 transmit byte count register bit name r/w description 7 reserved r this bit always reads ?0?. 6 64byte r/w 1 = indicates that 64 bytes are to be transmitted. [5:0] count r/w indicates the byte c ount of the packet to be sent on ep1 and stored in sram beginning at address 0x00c0. note: a zero length packet may be sent by just clearing th is register and setting the tx bit in the ep1tx_ctl register. table 40 ? ram buffer write byte count register a1 ramwrbc_a1 (0xce - reset=0x00) ram buffer write byte count register a1 bit name r/w description [7:2] reserved r this bit always reads ?0?. 1 512bytes r 1 = indicates that 512 bytes were transferred 0 count8 r bit 8 of the byte count for the data transferred. table 41 ? ram buffer write byte count register a2 register ramwrbc_a2 (0xcf- reset=0x00) ram buffer write byte count register a2 bit name r/w description [7:0] count[7:0] r bits 7 thru 0 the by te count of the dat a transferred to the sram. the data is stored beginning at address 0x0100
smsc usb97c201 page 36 rev. 11-05-03 datasheet table 42 ? ram buffer write byte count register b1 ramwrbc_b1 (0xd1 - reset=0x00) ram buffer write byte count register b1 bit name r/w description [7:2] reserved r this bit always reads ?0?. 1 512bytes r 1 = indicates that 512 bytes were transferred 0 count8 r bit 8 of the byte count for the data transferred. table 43 ? ram buffer write byte count register b2 register ramwrbc_b2 (0xd2 - reset=0x00) ram buffer write byte count register b2 bit name r/w description [7:0] count[7:0] r bits 7 thru 0 the byte count of the data transferred to sram. the packet is stored beginning at address 0x0300. table 44 ? ram buffer read byte count register a1 ramrdbc_a1 (0xd3 - reset=0x00) ram buffer read byte count register a1 bit name r/w description [7:2] reserved r this bit always reads ?0?. 1 512bytes r/w 1 = indicates t hat 512 bytes are to transferred 0 count8 r/w bit 8 of the byte c ount for the data to be transferred. table 45 ? ram buffer read byte count register a2 register ramrdbc_a2 (0xd4 - reset=0x00) ram buffer read byte count register a2 bit name r/w description [7:0] count[7:0] r/w bits 7 thru 0 the by te count of the packet to be transferred from the sram. the packet is stored beginning at address 0x0100 table 46 ? ram buffer read byte count register b1 ramrdbc_b1 (0xd5 - reset=0x00) ram buffer read byte count register b1 bit name r/w description [7:2] reserved r this bit always reads ?0?. 1 512bytes r/w 1 = indicates t hat 512 bytes are to transferred 0 count8 r/w bit 8 of the byte c ount for the data to be transferred. table 47 ? ram buffer read byte count register b2 register ramrdbc_b2 (0xd6 - reset=0x00) ram buffer read byte count register b2 bit name r/w description [7:0] count[7:0] r/w bits 7 thru 0 the by te count of the packet to be transferred from the sram. the packet is stored beginning at address 0x0300. table 48 ? nak register (int5) nak (0xd7 - reset=0x00) nak register bit name r/w description 7 nyet2rx r 1 = indicates that an nyet has been sent to the host on endpoint 2 in response to an out token. 6 nyet0rx r 1 = indicates that an nyet has been sent to the host on
smsc usb97c201 page 37 rev. 11-05-03 datasheet nak (0xd7 - reset=0x00) nak register bit name r/w description endpoint 0 in response to an out token. 5 nak2tx r 1 = indicates that an nak has been sent to the host on endpoint 2 in response to an in token. 4 nak2rx r 1 = indicates that an nak has been sent to the host on endpoint 2 in response to an out token. 3 nak1tx r 1 = indicates that an nak has been sent to the host on endpoint 1 in response to an in token. 2 nak1rx r 1 = indicates that an nak has been sent to the host on endpoint 1 in response to an out token. 1 nak0tx r 1 = indicates that an nak has been sent to the host on endpoint 0 in response to an in token. 0 nak0rx r 1 = indicates that an nak has been sent to the host on endpoint 0 in response to an out token. notes: any bit that is high in this regist er, if not masked by the corresponding ma sk bit in the nak_msk register will generate int5 to the 8051. a bit in this register may be cleared by writing a ?1? to it. table 49 ? nak mask register nak_msk (0xd9- reset=0xff) nak mask register bit name r/w description 7 nyet2rx r/w 1 = prevents generation of the 8051 int5 interrupt when the nyet2rx bit is set in the nak register. 6 nyet0rx r/w 1 = prevents generation of the 8051 int5 interrupt when the nyet0rx bit is set in the nak register. 5 nak2tx r/w 1 = prevents generation of the 8051 int5 interrupt when the nak2tx bit is set in the nak register. 4 nak2rx r/w 1 = prevents generation of the 8051 int5 interrupt when the nak2rx bit is set in the nak register. 3 nak1tx r/w 1 = prevents generation of the 8051 int5 interrupt when the nak1tx bit is set in the nak register. 2 nak1rx r/w 1 = prevents generation of the 8051 int5 interrupt when the nak1rx bit is set in the nak register. 1 nak0tx r/w 1 = prevents generation of the 8051 int5 interrupt when the nak0tx bit is set in the nak register. 0 nak0rx r/w 1 = prevents generation of the 8051 int5 interrupt when the nak0rx bit is set in the nak register. table 50 ? usb error register usb_err (0xda - reset=0x00) usb error register bit name r/w description 7 reserved r this bit always reads a ?0?. 6 token r/w when set, this bit indicates that an unexpected token has been received on one of t he device?s endpoints. 5 reserved r this bit always reads a ?0?. 4 stall r/w when set, indicates that a token has been received on a endpoint of the device while t hat endpoint is in the stall condition. 3 dtog r/w when set, indicates that a data packet has been received on one of the device?s endpoints t hat has an incorrect data toggle.
smsc usb97c201 page 38 rev. 11-05-03 datasheet usb_err (0xda - reset=0x00) usb error register bit name r/w description 2 rxerr r/w when set, indicates that a packet has been received on one of the device?s endpoint with an error in fs mode. 1 reserved r this bit always reads a ?0?. 0 crc r/w when set, indicates that a packet with an incorrect crc has been received on an endpoint. note: writing a ?1? to a bit in this register will clear the bit.. if any bit is set in this register the usb_err bit is set in the usb_stat register. table 51 ? msb ata data register msb_ata (0xdb - reset=0x00) msb ata control/status data register bit name r/w description [7:0] d[15:8] r/w during 8051 writes to xdata 0x31f0 (the ata drives control/status regist er), data in this r egister represents the ms byte of the 16 bit operation to this address. for a read of 0x31f0, the ms byte data is re turned in this register after the pio_complete bit is set in the ata_ctl register. (the data returned from the act ual read of 31f0 should be discarded) table 52 ? lsb ata data register lsb_ata (0xdc - reset=0x00) lsb ata control/status data register bit name r/w description [7:0] d[7:0] r/w during 8051 reads to xdata 0x31f1-7 and 33f6 (the ata drive?s 8 bit registers), the ac tual data is returned in this register after the pio_complete bit is set in the ata_ctl register. during writes, this register is unused. for 8051 read to xdata 0x31f0, the ls byte of data is returned in this register after the pio_complete bit is set in the ata_ctl register. duri ng writes, this register is unused. table 53 ? ata transfer count register 0 ata_cnt0 (0xe1 - reset=0x00) ata transfer count register 0 bit name r/w description [7:0] d[7:0] r/w see note below. table 54 ? ata transfer count register 1 ata_cnt1 (0xe2 - reset=0x00) ata transfer count register 1 bit name r/w description [7:0] d[15:8] r/w see note below. table 55 ? ata transfer count register 2 ata_cnt2 (0xe3 - reset=0x00) ata transfer count register 2 bit name r/w description [7:0] d[23:16] r/w see note below.
smsc usb97c201 page 39 rev. 11-05-03 datasheet table 56 ? ata transfer count register 3 ata_cnt3 (0xe4 - reset=0x00) ata transfer count register 3 bit name r/w description [7:0] d[31:24] r/w see note below. note: the ata_cnt[3:0] register must be written with the byte count of the total ata tr ansfer to be made. writing the ata_cnt0 register initia lizes the ata block for the transfer and shoul d be written last. reading these registers, will return the actual number of bytes remaining to be trans ferred. if the transfer is prem aturely terminated or aborted, then the ata_err bit in the ata_ctl register will be set. table 57 ?ata control register ata_ctl (0xdd - reset=0x00) ata control register bit name r/w description 7 out_ control r/w setting this bit to a ?1? a llows the ide_sa[2:0], ide_nior, ide_niow, ide_ncs1, ide_ncs0, ide_dack, and ide_d[15:0] pins operate normally. when cleared (?0?), these pins are high impedance. 6 pio complete r/w this bit is set once any pio access to the external drive registers (31f0-31f7 & 33f 6) has been completed (see section 6.3.2 for more info rmation on pio accesses). this bit is cleared by writing a ?1? to it. the value of the this bit is mirrored in the isr_1 register to allow and interrupt to be generated, if desired. this bit is also cleared at the start of any pio access to the external drive registers. 5 ata_abort r/w setting this bit to a ?1? will abort any ata transfer to/from the external device. the ata_err bit will be set, also. it is cleared upon initializing the next ata transfer by writing a value into the ata_cnt0 register. 4 ata_err r a ?1? on this bit indicates that an error has occurred during the ata transfer/to/from the drive. it is cleared upon initializing the next ata transfer by writing a value into the ata_cnt0 register. 3 auto_tog r/w when set to ?1?, enables the automatic t oggling between the a and b sram buffers when writing to the sram. see section 6.9 on page 50 for more information 2 auto_trans r/w when set to a ?1?, enables the automatic transfer mode of operation. see section 6.9 on page 50 for details. writing this bit to a ?1?, automatica lly enables the automatic toggling operation also, independent of t he state of the auto-tog bit above. 1 reserved r this bit always returns a ?1?. 0 en0 r/w primary drive 0 udma enable. 1: enable udma mode for pr imary channel drive 0. 0: disable (default).. note : if an ata_err occurs, the state of which buffers (a or b) are being used for reading or writing form/to the ata block are unchanged. the firmware may determine which buffer wa s being used by the ata at the time of the error by reading either bit 4 or bit 5 of the ep2_ctl register and determine how much of the transfer was completed by reading the ata_cnx registers.
smsc usb97c201 page 40 rev. 11-05-03 datasheet table 58 ?ata ultra dma timing register ata_dma (0xde - reset=0x00) ata ultra dma timing register bit name r/w description [7:3] reserved r these bits always reads ?0?. [2:0] dma_tmg[2:0] r/w drive timing. these bit settings the ultra dma mode that the ata interface operates when ultra dma operation is enabled. they therefore determine t he minimum data write strobe cycle time (ct) and minimum ready to pause time (rp). are shown below: 000: ct= 267ns , rp= 333ns (mode 0) 001: ct= 167ns , rp= 266ns (mode 1) 010: ct= 133ns , rp= 200ns (mode 2) 011: ct= 100ns , rp= 200ns (mode 3) 100: ct= 66ns , rp= 200ns (mode 4) 101 thru 111 reserved ultra dma timing modes mode (data strobe cycle time) mode 0 (~1267ns) mode 1 (~167ns) mode 2 (~133ns) mode 3 (~100ns) mode 4 (~66ns) bit settings 000 001 010 011 100 table 59 ? ide timing register ide_tim (0xdf - reset=0x00) ide timing register bit name r/w description [7:6] isp[1:0] r/w iordy sample point. this field selects the number of 30mhz clocks (33ns/clock) between ide_niox assertion and the first iordy sample point. in fast pio timing mode (see bit 3 below), this sets the active period for the data strobe. bits [7-6] number of clocks 00 5 clocks 01 4 clocks 10 3 clocks 11 2 clocks. [5:4] rt[0:1] r/w recovery time. this field selects the minimum number of 30mhz clocks(33ns/clock) betw een the last iordy sample point and the next ide_niox str obe. in fast pio timing mode (see bit 3 below), this sets t he inactive period for the data strobe. bits [5-4] number of clocks 00 4 clocks 01 3 clocks 10 2 clocks 11 1 clock. 3 dte r/w dma timing enable only. 1: fast timing mode is enabl ed for non-udma dma data. pio transfer to the ide data port will run in compatible timing. 0: both non-udma dma and pio data transfers to drive will use the fast timing mode.
smsc usb97c201 page 41 rev. 11-05-03 datasheet ide_tim (0xdf - reset=0x00) ide timing register bit name r/w description 2 ppe r/w prefetch and posting enable. 1:prefetch and posting to the ide data port is enabled for the drive. 0: prefetch and posting is disabled for the drive . 1 ispe r/w iordy sample point enable. 1: all accesses to the ata i/o address range sample iordy. the iordy sample point is spec ified by the ?iordy sample point? field of this register. 0: iordy sampling is disabled. the internal iordy signal is forced asserted guaranteeing that iordy is sampled asserted at the first sample point as s pecified by the ?iordy sample point? field in this register. 0 ftb r/w fast timing bank. 1: accesses to the data port of the ata io address range uses fast timings. pio accesses to the data port use fast timing only if bit 3 of this register is zero. accesses to all non- data ports of the ata i/o address range always use the 8 bit compatible timings. 0: accesses to the data port of the ata i/o address range uses the 16 bit compatible timing. note: the following settings should be used for the isp, rt, dte, and ftb bits for the various pio and mwdma modes: mode isp[1:0] rt[1:0] ftb dte comment pio mode 0 00 11 1 0 ata pio cycle speed limited by 8051 data moves pio mode 1 01 11 1 0 ata pio cycle speed limited by 8051 data moves pio mode 2-4 10 11 1 0 ata pio cycle speed limited by 8051 data moves mwdma 0 00 00 0 x requires compatibility mode timing to be used mwdma 1 10 10 1 x mwdma 2 10 11 1 x
smsc usb97c201 page 42 rev. 11-05-03 datasheet table 60 ?ata slew rate control a register ata_srca (0xe5 - reset=0x00) ata slew rate control a register bit name r/w description [7:6] slew3 r/w these two bits are control inputs of the ata pad for data bits [15:12]. the bits can be used to vary the slew rate of ide_d[15:12] from minimum to maximum rate specified by the ata66 specification. the value 11b sets the slew rate to be the maximum and the value of 00b sets the slew rate to be the minimum. [5:4] slew2 r/w these two bits are control inputs of the ata pad for data bits [11:8]. the bits can be used to vary the slew rate of ide_d[11:8] from minimum to maximum rate specified by the ata66 specification. the value 11b sets the slew rate to be the maximum and the value of 00b sets the slew rate to be the minimum. [3:2] slew1 r/w these two bits are control inputs of the ata pad for data bits [7:4]. the bits can be used to vary the slew rate of ide_d[7:4] from minimum to ma ximum rate specified by the ata66 specification. the val ue 11b sets the slew rate to be the maximum and the value of 00b sets the slew rate to be the minimum. [1:0] slew0 r/w these two bits are control inputs of the ata pad for data bits [3:0]. the bits can be used to vary the slew rate of ide_d[3:0] from minimum to ma ximum rate specified by the ata66 specification. the val ue 11b sets the slew rate to be the maximum and the value of 00b sets the slew rate to be the minimum. table 61 ?ata slew rate control b register ata_srcb (0xe6 - reset=0x00) ata slew rate control b register bit name r/w description [7:2] reserved r always returns ?0? on reads [1:0] slew4 r/w these two bits ar e control inputs of the ata pad for strobe signaling during ultra ata writes to disk. the bits can be used to vary the slew rate of strobe from minimum to maximum rate specified by the ata66 specification. the value 11b sets the slew rate to be the maximum and the value of 00b sets the slew rate to be the minimum. 6.2 sie block the sie is a usb low-level protocol interpreter. t he sie controls the usb bus protocol, packet generation / extraction, pid / device id parsing, and crc coding / decodingwith autonomous error handling. parallel-to-serial / serial-to-parallel conversion, bit st uffing, and nrzi coding / decoding are handled in the phy block. it is capable of operating either in usb 1.1 or 2.0 compliant modes. unlike the normal 97cxxx series sies, it has more autonomous protocol handling functi ons like stall condition clearing on setup packets, suspend / resume / reset conditions, and remote wakeup. it also autonomously handles t he error conditions such as retry for crc errors, data toggle errors, and generation of nyet, stall, ack and nack depending on the endpoint buffer status. during the power down state, the sie clock is stopped. the sie can asyn chronously detect a usb reset and/or usb resume condition and wakeup the 8051.
smsc usb97c201 page 43 rev. 11-05-03 datasheet 6.2.1 autonomous usb protocol 6.2.1.1 automatic retries - out transactions if a packet is received with an incorrect data toggle, the si e will ack, but ignores the data packet. if more than 64 bytes received on ep0rx or ep1rx, or if more than 512 bytes are received on ep2, the usb sie will ignore the packet and set the appropriate ?stall? bit until the hos t acknowledges the condition by sending a ?clear feature endpoint stall? command for that endpoint, or, in the case of endpoint 0, a setup is recieved. if an error occurs during an out transaction, the usb97c 201 reloads its usb sie read pointer back to the beginning of the buffer. the host then sends another out token and retransmits the packet. once the packet has been successfully rece ived, the appropriate interrupt bit is set in isr_0 or isr_1. the sie can handle any number of back-to-back retr ies, but the host determines how many times a packet is retried. if an endpoints?s buffer or buffers (in the case of ep2) are full, then the sie sends a na ck. a tx direction endpoint will nak all out packets. 6.2.1.2 automatic retries - in transactions if an timeout (no response from the host / lost ack) occu rs during an in transaction, the usb97c201 reloads its usb sie side buffer read pointer back to t he beginning of the failed packet. the hos t then sends another in token and the sie re-transmits the packet with the same data toggle pid. once the host has successfully received the packet (only upon ack received by sie), the appropriate interrupt bit is set in isr_0 or isr_1. the sie can handle any number of back-to-back retrie s, but the host determines how many times a packet is retried. upon reception of a setup token followed by the 8 byte data-0 packet on ep0, the internal dtog bit for both ep0rx and ep0tx are set to one. 6.2.1.3 packet lengths the maximum packet length of an endpoint is fixed and 64 bytes for ep0 and ep1, and is 512 bytes for ep2 in hs mode and 64 bytes in fs mode. for in transactions, the u sb97c201 will send the bytes in the buffer to the host. for all out packets, the number of bytes received in the packet is indicated to the 8051 through the byte count register of the respective endpoint. 6.2.2 usb events there are several events, which cause di fferent parts of the sie to be initializ ed. the following is the list of events and the respective actions. 6.2.2.1 reset a reset via the external nreset pin causes the following: 1. all endpoints are disabled, a ll sie endpoint buffers are cleared, all stall conditions, and all registers clear to their default state. 2. if usb97c201 was in power dow n state, then it is cleared. 3. the external crystal oscillator is allowed to run. 6.2.2.2 usb bus reset usb bus reset is recognized only when the clocks are r unning. if the device is in suspend mode with the clocks stopped, a usb reset will be first recognized as a resu me event and if the wu_src1 bit for resume is unmasked, will restart the clocks. the usb reset can only then be detected. upon re cognition it causes the following: 1. all sie endpoint buffer byte count registers are cleared, all stall condi tions, the setup bit, setup_delay bit, sie_suspend, sie_resume are cleared. the pid s equencers, internal dtog are reset for all endpoints 2. the following registers will be set to their por values: usb_add, sie_st at, usb_conf, ep0rx_ctl, ep0tx_ctl, ep1rx_ctl, exp1tx_ctl, ep2_ctl, ep0rx_bc, ep0tx_bc, ep1rx_bc, ep1tx_bc, ramwrbc_a1, ramwrbc_a2, ramwrbc_b1, ramwrbc_b2, ramrdbc_a1, ramrdbc_a2, ramrdbc_b1, ramrdbc_b2, nak, usb_err. 3. the seven bit usb device address is cleared. 4. both ep0tx and ep0rx endpoints are enabled.
smsc usb97c201 page 44 rev. 11-05-03 datasheet 5. if the usb_reset and usb_stat bits are unmasked, then a isr_0 interrupt (usb_stat) is generated to the 8051 and the usb_reset bit in the wu_src1 register will also be set and will generate an interrupt if unmasked. 6.2.2.3 suspend this is detected by the si e when the idle condition on the usb bus occu rs for a duration of more than 3ms. upon detection of this condition via the suspend bit of isr_1, the 8051 will place the usb97c201 into a low power mode via the usb_suspend bit and enter into a power down state. 6.2.2.4 setup token arrival when a setup token is recognized, the following sequence happens. 1. independent of the state of setup bit, the setup data packet is received on ep0rx and ack is sent for the received setup packet. 2. the stall condition, if any, for ep0tx and ep0rx are cleared, as well as the ep0rx_bc and ep0tx_bc registers and the tx bit of ep0_ctl register . 3. the internal dtog bit for bot h ep0tx and ep0rx are set to one. 4. the ep0rx_bc register is cleared, a llowing the subsequent data packe t( if not zero length) to be written into the start of the buffer. 5. the setup bit in isr_0 register is set. until the set up bit is cleared by the 8051, all out packets to ep0rx are nacked. 6.2.2.5 resume this global resume condition is recognized asynchr onously and does not require t he sie clock running. upon recognition it causes the following. a usb reset will be in terpreted as a resume if it occurs while clocks are stopped. if the usb_resume and usb_stat bits are unmasked, then a isr_0 interrupt (usb_stat) is generated to the 8051. also the resume bit in the wu_src1 register will be set and can generate an interrupt, if unmasked. the sie_suspend bit is cleared automatically and the sie resumes from power down state. 6.2.2.6 remote wakeup when the 8051 is required to go into power down state, the sie_suspend should be set. when a remote wakeup event is desired, the 8051 is responsible to cl ear the sie_suspend, and set the sie_resume bits. 6.2.3 standard device requests the sie also handles autonomously several st andard device requests re ceived on endpoint 0. these requests are: set_configuration get_configuration set_feature_endpoint_halt clear_feature_endpoint_halt set_feature_remote_wake_up clear_feature_remote_wake_up get_interface set_interface set_address these events (except set_address, get_interface (always returns 0), and get_configuration) are indicated in the sie_status register, which can generate an interrupt to the 8051 core?s int3 line. the configuration number, resulting from the set_configuration command is stored in the usb_conf register. this value is used when reporting to the host on a get_configuration command, also. all other device requests are handled normally and will generate the setup status bit when received. 6.2.4 sie configurations upon por or the detection of usb reset , the configuration of the device is set to ?0?. the host may change its configuration state to ?1? with a ?set configuration? command on endpoint 0. all other conf iguration number requests by the host will result in a stall condition on e ndpoint 0. for configuration 0, only endpoint 0 rx and tx are enabled, while all endpoints ar e enabled for configuration 1.
smsc usb97c201 page 45 rev. 11-05-03 datasheet 6.3 ide controller description this is an ata-66 core. the pio i/o address range for t he ata interface in the 8051 xdata space is decoded in the range of 0x31f0 to 0x31f7, and 0x33f6 transfers to/from sram will occur from/to the 16 bi t ata data port at cs0=1, cs1=0, a2-a0= 0. the most significant byte of transfer to/from this data po rt is available to the 8051 via the register located in sfr space at 0xdb. writes to 0x31f0 in the xdata space by the 8051 would write both the contents of this register and the data in the movex instruct ion as a 16 bit dword to the ata data po rt. similarly, reads by the 8051 of 0x31f0 will return the actual drive data fo r reading by the 8051 at 0xdb and 0xdc. 6.3.1 ide configurations the usb97c201 supports only a single pr imary drive on the ide interface. 6.3.2 pio ide operations the ide controller includes both compatible and fast timi ng modes. the fast timing mode only applies to the ide data ports. all other transactions to the ide registers are r un in single transaction mode with compatible timings. the ide_tim register permits different timing modes, fr om multi-word dma ata mode 0 to ata mode 2, to be programmed for the drive. these modes range from 3mb/sec to 16mb/sec in te rms of data transfer rate. the ultra ata/66 synchronous dma timing modes can also be app lied to each drive by programming the ata_ctl and ata_dma registers. when a drive is enabled in ultra dma mode oper ation, the dma transfers are executed with the ultra ata timings. the pio data transfers are still executed using compatible timings or fast timings when enabled. pio accesses are not directly made to the drive from t he 8051 via its xdata address spac e, but are timed by the ata controller to meet required driv e timing. a read access is accomplished by first reading the xdata address location, ignoring the returned data, and then waiting for the pio_complete bit to be set in the ata_ctl register. the actual data retrieved from the dr ive can then be read at lsb and msb( if a 16 bit access to 31f0) ata data registers in sfr space. writes to the drive are done normally, directly to the xdata address desired( the msb ata data register must be loaded first for the 16 bit writes to 31f0), but a subsequent write (or read) cannot be initiated until the pio_complete bit is set. this bit is reflected in the isr_1 register to allow an interrupt to be generated, if desired. startup latency: if the ide_sa[2:0] and ide_ncs[1:0] lines are not set up, startup latency is incurred when a cycle that accesses the ide data port is decoded. startup latency provides the setup time for asse rtion of ide_sa[2:0] and ide_ncs[1:0] lines prior to assertion of t he read and write strobes (ide_nior and ide_niow). cycle latency: cycle latency consists of the i/o command strobe assertion length and recovery time. recovery time is needed so that back-to-back transactions, which does not incur startup and shutdown latency, may occur on the ide interface without violating minimum cycle periods fo r the ide interface. the co mmand strobe assertion width (iordy sample point: isp) for the fast timing mode is pr ogrammable in the isp field of the ide_tim register. the recovery time (rct) is programmable in the rct field of the ide_tim register. if the iordy is asserted when the iordy sample point is reached, no wait states are added to the command strobe assertion length. if iordy is negated when the sample point is reached, additional wait states are added. iordy masking: the iordy signal can be ignored and assumed assert ed at the first iordy sample point (isp) through the ide_tim register. shutdown latency: shutdown latency is incurred after the ide dat a transactions (either a non-empty write post buffer to the ide drive or an outstanding read prefetch cycles from the ide drive) have comple ted and before other ide transactions can proceed. the lat ency provides hold time on the ide_sa[ 2:0] and ide_ncs[1:0] lines with respect to the read and write strobes (ide_nior and ide_niow). shutdown lat ency is set to 67ns in duration. table 62 shows the ide cycle timings for various ide transaction types.
smsc usb97c201 page 46 rev. 11-05-03 datasheet table 62 ? ide transaction timing ide transaction type startup latency isp rct shutdown latency non-data port compatible 133ns 367ns 733ns 67ns data port compatible 100ns 200ns 467ns 67ns fast timing mode (for data port accessing) 67ns 267-167ns 33-133ns 67ns 6.3.3 pio ide data prefetching and posting the ide controller can be programmed via the ide_tim regi sters to allow data to be pos ted to and prefetched from the ide data ports. data prefetching is initiated when a data port read occurs. the read prefetch elimi nates latency to the ide data ports and allows them to be performed back to back for the highest possible pio data transfer rates. the first data port read of a sector is called the demand read. subs equent data port reads from the sector are called prefetch reads. the demand read and a ll prefetch reads must be of t he same size (16 or 32 bits). data posting is performed for writes to the ide data por ts. the ide controller will then run the ide cycle to transfer the data to the drive. 6.3.4 dma transfers when enabled and supported by the device, dma transfers are executed on t he ide interface, the chip selects (ide_ncs1/0) will be negated (high). when the ide device asserts ide_drq, the ide controller will return ide_ndack to the ide device when it is ready for t he dma data transfer. for multiword dma transfers, the ide_nior or ide_niow signal will free run at the progr ammed rate as long as ide_drq remains asserted and the ide controller is prepared to complete a data transfer. if ide_drq has not de-asse rted by the rising edge of ide_nior or ide_niow signal multiword dma is assum ed and at least one more cycle will be executed. if ide_drq de-asserts before ide_nior or ide_niow is de-asserted wh ile ide_ndack is asserted, it indicates that one last data transfer remains for the current session. in this case, ide_ndack will be de-asserted one clock after the ide_nior or ide_niow signal de-asserts. this allows the ide controller to support both single and multiword dma cycles automatically. the ide device?s dma request signal is sampled when the io strobe is deasserted. if inactive, the dma acknowledge signal is deasserted and no more transfers take place until dma request is again asserted. the controller transfers data to or from the ep2 buffer(s ) responding to the dma requests from the ide device. the controller will continue this unt il stopped or the byte count in ata_cnt[3:0] reaches zero. 6.3.4.1 completion of dma data transfers the ide device signals an interrupt (i de_irq) once its progra mmed data count has been transferred or an error occurs. the ide device will also deassert its dma request si gnal, causing the ide controlle r to stop transferring data. on reads from the ide device, it will cause any data read from t he device to be transferred to the ep2 buffer(s), as they become available. 6.3.5 ultra ata/66 synchro nous dma operation ultra ata/66 is a new ide transfer protocol used to tr ansfer data between a ultra at a/66 capable ide controller and ultra ata/66 capable ide devices. ultra dma/66 utilizes a ?source synchronous? si gnaling protocol to transfer data at rates up to 66 mbytes/sec. 6.3.5.1 ultra ata/66 signals although no additional signal pins are required for ultra ata/66 operation, the operat ion of some standard ide controller pins are redefined during ult ra ata modes of operation. the ult ra dma/66 protocol defines three hand- shaking signals: stop, strobe and dmardy. table 63 s hows the mapping of the r edefined ultra ata/66 signals onto the standard ide controller pins. stop: stop is always driven by the the usb97c201 and is used to request that a transfer be stopped or as an acknowledgment to stop a request from ide device. the ide_niow signal is redefined as stop for both read and write transfers.
smsc usb97c201 page 47 rev. 11-05-03 datasheet strobe : this is a data strobe signal driven by the transmitter of a data transfe r, which is either the ide device of a dma read transfer or the usb97c 201 of a dma write transfer, on which data is transferred during each rising and falling edge transition of the signal. the iordy signal is redefined as strobe for reads (when transferring data from the ide device to the usb97c201). the ide_nior si gnal is redefined as strobe fo r writes (transferring data from the usb97c201 to the ide device). ndmardy: this is a signal driven by the re ceiver of a data transfer, which is either the usb97c201 of a dma read transfer or the ide device of a dma write transfer, to signal that the rece iver is ready to transfer data or to add wait states to the current tr ansaction. the ide_nior signal is redefined as ndmardy for reads (when transferring data from the ide device to the usb97c201). the iordy signal is redefined as ndmardy for writes (transferring data from the u sb97c201 to the ide device). table 63 ? ultra ata/66 control signal assignments standard ide signal name signal name during ultra ata/66 read cycle signal name during ultra ata/66 write cycle ide_niow stop stop ide_nior ndmardy strobe iordy strobe ndmardy note: ?ultra ata/66 read cycle?: data transfers are from the ide device to the usb97c201. ?ultra ata/66 write cycle?: data transfers are from the usb97c201 to the ide device. 6.3.6 ultra ata/66 operation after initialization, there are two prim ary operations provided by the ultra ata/ 66 controller: data transfers and cyclic redundancy checking (crc). 6.3.6.1 initialization initialization includes enabling and performing proper set up on the usb97c201and the ide device. for the usb97c201, it is necessary to enabl e ultra ata/66 mode for the ide devic e and setting up the ultra ata/66 cycle timings through the ata_dma register. the usb97c201 s upports five timing modes: mode 0 (120ns cycle time), mode 1 (80 ns cycle time), mode 2 (60ns cycle time), mode 3 (45ns cycle time), and mode 4 (30ns cycle time). 6.3.6.2 data transfer operation the usb97c201 and the ultra ata compatible ide device control the transfer via t he ultra ata protocol. the actual data transfer consists of three phas es, a start-up phase, a data transfer phase, and a burst termination phase. 1) start-up phase : the ide device begins the start-up phase by asserting drq signal. when ready to begin the transfer, the usb97c201 will assert ndack. when ndack is asserted, the usb97c201 will drive cs0/1 inactive, and a0-a2 low. for write cycles, the usb97c201 will deassert stop, wa it for the ide device to assert ndmardy and then drive the first data word and the strobe signal. for read cycles, the usb97c201will tristate the data lines, deassert stop, and assert ndmardy. the ide device will then drive the first data word and the strobe signal. 2) data-transfer phase: the burst data transfer conti nues with the data source (writes: usb97c201, reads: ide devices) providing data and toggling st robe. data is transferred (latched by receiver) on each rising and falling edge of strobe. the source can pause the burst str eam by holding strobe high or low, resuming the burst stream by again toggling strobe. the receiver can pause the burst st ream by negating the ndmardy and resu mes the transfers by asserting ndmardy. the usb97c201 may pause a burst transaction in order to toggle internal data buffe r, or to prevent a buffer over or under flow condition, resuming once the condition has cleared.
smsc usb97c201 page 48 rev. 11-05-03 datasheet 1) termination phase: either the source or the rece iver can terminate a burst transfe r. a burst termination consists of a stop request, stop acknow ledge and transfer of crc data. the usb97c201 can stop a burst by asserting stop , with the ide device acknowledged by deasserting drq. the ide device stops a burst by deasserting drq and the usb97c201 acknowledges by asserting stop. the source then drives the strobe signal to a high level. the usb97c201 t hen drive the crc value onto the data lines and deassert ndack. the ide devices will latch the crc value on the rising edge of ndack. the usb97c201 will terminate a burst transfer if a progr ammed i/o (pio) cycle is executed to the ide channel currently running the burst, or upon transferri ng the last data from the final prd. at the completion of the ent ire transfer process, the ide device will i ssue an interrupt, setting the ata_irq bit and forcing the remaining data to be sent to host on read operations. 6.3.6.3 cyclic redundancy checking (crc) calculation cyclic redundancy checking (crc-16) is used for error checking on ultra ata/66 transfers. the crc value is calculated for all data by both the usb97c201 and the ide device over the duration of the dma burst transfer segment. this segment is defined as all data transferred with a valid stro be edge from dack assertion to ndack deassertion. at the end of the transfer burst segment, the usb97c201 will drive the crc val ue onto the d[15:0] signals. the value is then latched by the ide device on deassertion of ndack. the ide device compares the usb97c201 crc value to its own and reports an error if there is a mismatch. 6.4 sram buffers 1.25k bytes of buffer sram are provided. the memory map of the buffers are given below: table 64 ?buffer sram mapping sram address buffer description 0x300 ? 0x4ff sram b 512 byte ep2/ata buffer 0x100 ? 0x2ff sram a 512 byte ep2/ata buffer 0x0c0 ? 0x0ff 64 byte ep1 tx buffer 0x080 ? 0x0bf 64 byte ep1 rx buffer 0x040 ? 0x07f 64 byte ep0 tx buffer 0x000 ? 0x03f 64 byte ep0 rx buffer note: the above sram address in the table refers to the byt e location within the sram. the sram is actually physically organized as a 32 bit wide memory. the buffers used for ep2 is organized as two 512 byte bu ffers: a and b. the a buffer has its address starting at 0x100, while the b is at address 0x300.. byte counts for data received or to be trans mitted is contained in the ramwrbc_a/b and ramrdbc _ a/b register sets, respectively. the direct ion of data flow is determined by the dir bit in the ep2 control register. if di r=0 then data flow is from the sie to sram and from the sram to the ata interface. if dir=1 the data flow is in the opposite direction. unlike ep0 and ep1, data for both directions can not be simultaneously buffered in the sram for ep2. however, the dual buffers and automat ic transfer operation (see section 6.9) allow for sustained 480m bps transfers across the usb97c201. 6.5 8051 options the following 8051 core options are included: 256 sram in sfr space three timers single serial port extended external inputs (int2-13) external program memory and external data bus (xdata) are pinned out as a common bus. 6.6 address multiplexing access to the sram for the three access points, ie sie, ata dma, or 8051, is via a time division multiplexing scheme (see section 6.7). each of t he above blocks have access to read or wr ite the sram duri ng one of four sub- periods (the fourth period being reserved for future expansi on/idle) of a four phase 15 mhz clock( ie 60 mhz slice clock). the values set in the epx_bufx , and in_bufx, or out_bufx (depending on the direction set for ep2) control the address counter for accesses by the eps during their time-slice.
smsc usb97c201 page 49 rev. 11-05-03 datasheet the in_bufx or out_bufx (again,depending on the direct ion of ep2) controls the address for ata access and sram_addx does so for the 8051 accesses. which endpoint has access during the sie?s time-slice is determined by the sie, ie depending on what endpoint is currently active on the usb bus. since accesses occur at 15m hz using dwords (32bits), this process is capable of real time concurrency with the usb bus and does not require additional buffering in the sie. even if a received packet is ultimately discarded, all that is required to do so is simply not generate the comple tion interrupt for that endpoint. similarly for the transmit process, allowing re-transmission. 6.7 sram time multiplexer operation the sram access, read or write, occurs in four s equential phases, ?0-3. these peri ods are 16.666ns long (60mhz) and are non-overlapping. data to/from the sram are buffe red by local dword latches close to the sram to minimize high-speed bussing. the rest of the usb97c201 subsystems access these latches during the phases when they are not being used to tr ansfer data to/from the sram. 6.7.1 phase 0 (?0) during this phase, the sie has access to t he sram through its associated dword latches. if data from ep0 or ep1 is ready (ie either a full dwo rd or the end of a packet has been received), this data will be written into the appropriate buffer address space and the a ssociated epxrx_buf register incremented to reflect the amount of buffer used to this point. if data to ep0 or ep1 is required by the sie, it w ill load the data from the sram into the dword latch whose address is determined by an incrementing address count er. this counter will be compared against the epx_tx register value, to det ermine if the buffer transfer has been completed. if the dir bit in ep2_ctl is ?0?, and data is requested by the sie for tr ansmission to the host on ep2, the token error bit in the usb_err register will be set and no other action occurs. if data is received by the sie on ep2 (in tokens) and either a full dword or eop has been received, then this data will be wr itten into either the sram a or sram b buffer space, as appropriate, and the associated ramwrbc_ a/b registers incremented. if the dir bit in ep2_ctl is ?1?, and data is received by the sie from the host on ep2, the token error bit in the usb_err register will be set and no other action occurs. if dat a to ep2 is required by t he sie from the sram, the data will be loaded in the dword latch fr om the a or b buffer space, as appr opriate. the sram data address will be determined by an incrementing address c ounter which will be compared against t he ramrdbc_a/b registers? value to determine if the buffer transfer has been completed. 6.7.2 phase 1 (?1) the ata interface block has access to the sram via a dword latch during this phase. if the dir bit in ep2_ctl is ?1?, when either a full dw ord or end of dma has been rece ived by the ata interface from the atapi/ata device and loaded in to the dword latch, it will be written into either the a or b buffer space, as appropriate, and the associated ramwrbc_ a/b registers incremented. if the dir bit in ep2_ctl is ?0?, data will be loaded in the dword latch from t he a or b buffer space, as appropriate, when the ata interface requires data to be sent to the atapi/ata device. the sram data address will be determined by an incrementing address c ounter, which will be compared against t he ramrdbc_a/b registers? value to determine if the buffer transfer has been completed. 6.7.3 phase 2 (?2) during this phase, the dword latch that interfaces to the sram_data regi ster will be normally repetitively loaded with data read from the sram at t he address determined by the higher order bits of the sram_add1/2 register. the 8051 can read this data with a read to the sram_d ata port. bits 0&1 of the sram_add1 register will determine the byte read of the dword latch. in order to write data from the 8051 to the sram, the 8051 will writ e the data into the sram _data register. the sub- byte of the dword latch determined by bits 0 & 1 of the sram_add1 register will be updated, and the entire dword will be written to the sram at the address determined by the higher order address bits of the sram_add1/2 registers during the next ?2 interval. subsequent ly, it will return to reading the sram data into the dword latch on each ?2 interval. this allows single byte modifications of the the 32 bit wide sram to be executed by the 8051.
smsc usb97c201 page 50 rev. 11-05-03 datasheet 6.7.4 phase 3 (?3) phase 3 is an idle period during which no accesses occur to the sram. this period is reserved for future expansion in derivative products to allow another high speed access path for additional io. 6.8 ep2 sram buffer operation in order to illustrate the operation of the buffering and the interactions between the sie and ata control blocks and the firmware, the following scenario will be explained in detail in a timeline format for operation not using the auto toggle or auto transfer features (ie totally firmware controlled): 1. endpoint 2 is currently rece iving data (ie a file segment) fr om the host for transfer to the ata interface (dir bit of ep2_ctl = 0). the sram b buffer assigned to ep2 has ju st been filled with data from the sie (ie a max packet has been received). 2. endpoint 2 will be receiving more data (short packet, ie end of file segment) followed by a out packet from the host on the control endpoint (ep0) reques ting data. data has already been plac ed in the sram ep0 tx buffer, its length loaded into the ep0tx_bc register, and the tx bit of the ep0tx _ctl register written to a ?1?. phase 0 (?0) will refer the 60mhz sub-per iod that the sie has access to the sr am, while ?1 will be that for the ata interface and ?2 will be for the 8051 (?3 is idle and reserved). during one of the ?0 periods, the sie finishes loading the last of the pa cket data into the b buffer. ramwr_b interrupt bit is set notifying firmware of completion of packet. assuming that the ra mwr_a=0 (the data in the a sram buffer has been previously transferred), the ramwr_t oggle bit is written to a ?0? by the firmware, which clears the ramwrbc_a1/2 registers and directs the next dat a received from ep2 to the a buffer space in sram. firmware reads ramwrbc_b1/2 to determine packet size , loads value into ramrdbc_b1/2 register. the ramrd_toggle bit of ep2_ctl is written by the firmware wi th a ?1? which will begin the transfer of the b buffer to ata interface on the next ?1 period. on subsequent slices, the next dword of the incoming data packet from the hos t is loaded into the a buffer space on ?0 from the sie, auto-incr ementing the ramwrbc_a1/2 register values. on ?1 slices, the data from the b buffer space is output to the ata interface ( appropriately flow controlled by that in terface), and increment ing a counter which is compared to the ramrdbc_b1/2 regi sters to determine if the transfer is completed. during this time, the sie receives an in on ep0. during the next ?0 periods, and until the final transmission of the packet data to the sie is completed, data is read from t he sram into the sie for ep0 in response to ins. the writing of the a buffer by the sie on ?0 periods will then resume with the reception of outs on ep2. assuming the incoming data completes loading into the a buffe r space, before the b buffer is transferred to the ata interface, the ramwr_a interrupt w ill be generated before the ramrd_b interr upt. the firmware will then wait until the ramrd_b interrupt occurs, loads the ramrdbc_a1 /2 register with the count from the ramwrbc _ a1/2 registers, flips the buffers (ie ramrd_toggle=0, ramwr_toggle=1), and clears the ramwr_b bit (allowing the reuse of the b buffer area). on subsequent ?0 slices, the sie will r ead (for in tokens) or write (for ou t tokens) the appropriate sram buffer according to which ep is being accessed, if any, while t he usb97c201 transfers the a buffer to the ata interface during ?1. when an out packet on ep0 is received, the data in the sram will be transferred to the sie on subsequent ?0 slices, dword at a time until completed. 6.9 ep2 automatic buffer operations automatic operation of the interleaved sr am buffers exists in two degrees: au tomatic toggling of input buffers and automatic transfer of input and output buffer data to/from the sie and ata in terface. these feat ures may be disabled via bits in the ata_ctl register. 6.9.1 receive auto-toggle if the auto_tog bit of the ata_ctl register is set to a ?1?, then receive auto-togg ling between the a and b buffers for writes to the sram is enabled. figure 3 illu strates the auto-toggle of the receive buffers.
smsc usb97c201 page 51 rev. 11-05-03 datasheet ramwr_a=0 ramwr_b=0 ramwr_ toggle=0? yes no yes a sram data received? yes no no ramwr_a=1 ramwr_b=0 ramwr_ toggle=1 ramwr_a=0 ramwr_b=1 ramwr_ toggle=0 b sram data received? a sram data received? yes yes no no ramwr_a=1 ramwr_b=1 (in flow control active) ramwr_ toggle=0? yes no b sram data received? por no a buffer output completed? no b buffer output completed? yes yes clear ramwr_a clr ramwr_b a buffer output completed? no yes b buffer output completed? clr ramwr_b; yes no ramwr_toggle=1; (in flow control off) clr ramwr_a; clr ramwr_toggle; (in flow control off) figure 3 - receive buffer operation trapezoidal shapes indicate actions performed by the firmw are. the hardware state ma chine is responsible for automatically changing the state of ramwr_toggle according to the state change of the ramwr_b and ramwr_a bits, as shown in table 65 . these bits are normally set by the usb97c201 upon completion of loading the a or b sram buffer and are normally cleared by the firmware (except when auto transfer operation is enabled, see section 6.9.3). note that when both buffers are ?full?, ie ramwr_ a and ramwr_b status bits are both set, that the ramwr_toggle is not altered and that flow control is initiated on the input source. if this source is the sie, it will nyet or nak further outs. if it is the ata interface, ndak will not be asserted in response to drq and data not clocked in to the sram. table 65 ? ramwr_toggle state control ramwr_b ramwr_a ramwr_toggle comment 0 0->1 0->1 a buffer filled; b buffer empty; change to b buffer buffer 0->1 0 1->0 b buffer filled, a buffer empty; change to a buffer buffer 1 0->1 no change (0) both buffers filled; source flow controlled. 0->1 1 no change (1) both buffers filled; source flow controlled 1->0 1 x->1 b buffer emptied; a buffer full; change to a buffer buffer. 1 1->0 x->0 a buffer emptied; b buffer full; change to a buffer buffer.
smsc usb97c201 page 52 rev. 11-05-03 datasheet 6.9.2 transmit buffer operation figure 4 illustrates the operation of the transmit a and b buffers. ramrd_ toggle written? no yes ramrd_ toggle= 0? no yes ramrd_a=0; begin output a buffer sram data ramrd_ toggle written? yes no por ramrd_a=1 ramrd_b=1 output completed? no yes ramrd_a=1 ramrd_ toggle= 0? yes no ramrd_b=0; begin output b buffer sram data ramrd_ toggle written? no output completed? no yes ramrd_b=1 ramrd_ toggle= 1? no yes yes output flow control active output flow control inactive ramrd_b=0 ramrd_b=0? yes no ramrd_a=0 ramrd_a=0? yes figure 4 - transmit buffer operation transmit buffer operations are always initiated by writ ing the ramrd_toggle bit in the ep2 control register. output flow control to the device re ceiving data from the sram buffer is active once data in both buffers has been transferred. if the destination is the sie, then it will nyet or nak further in s. if it is the ata interface, ndak will not be asserted in response to drq data will not be clocked out. 6.9.3 automatic transfer operation if the auto_trans bit is set in the ata_ctl regist er, then automatic manipulat ion of the ramwr_toggle, ramrd_toggle, ramwr_b, and ramwr_a bi ts is executed by a state machine to allow continuous streaming of the data between ep2 and the ata dma in terface. automatic transfer of by te counts between the ramwrbc_a/b and ramrdbc_a/b registers is also implement ed. this is illustrated in figure 5. note : if the count in ramwrbc_a/b is zero, no transfer will o ccur. this is likely to happen on transfers from the sie to the ata at the very end of the transfer.
smsc usb97c201 page 53 rev. 11-05-03 datasheet ramwr_a=0 ramwr_b=0 ramrd_a=1 ramrd_b=1 ramwr_a=1 & count<>0 ? no ramwr_b=1 & count<>0 ? no yes xfer count ramwrbc_b1/2 -> ramrdbc_b1/2; ramrd_toggle=1 yes ramrd_b=1? ramwr_a=1 & count<>0 ? no no yes yes clr ramwr_b ramrd_b=1? no yes ramwr_toggle =1 & clr ramwr_b xfer count ramwrbc_a1/2 -> ramrdbc_a1/2; ramrd_toggle=0; ramrd_a =1? ramwr_b=1 & count<>0 ? no no yes ramrd_a =1? no clr ramwr_a yes ramwr_tog gle=0 & clr ramwr_a yes aut0_trans->1 figure 5 - automatic data transfer operation the trapezoidal shapes represent actions taken by the state machine.
smsc usb97c201 page 54 rev. 11-05-03 datasheet 7.0 dc parameters maximum guaranteed ratings operating temper ature r ange.................................................................................................... ....................... 0 o c to +70 o c storage temper ature range ...................................................................................................... ......................-55 o to +150 o c lead temperature range (sol dering, 10 seconds ) ................................................................................. .................... +325 o c positive voltage on any pin, with respec t to ground ............................................................................ ............................ 5.5v negative voltage on any pin, with respect to gr ound............................................................................ ..........................-0.3v maximum v dda, v ddio ............................................................................................................................... .......................+3.0v maximum v dd, v ddp ............................................................................................................................... ..........................+4.0v *stresses above the specified parameters could cause permanent damage to the device. this is a stress rating only and functional operation of the dev ice at any other condition above those indica ted in the operation sections of this specification is not implied. note: when powering this device from laborat ory or system power supplies, it is important that the absolute maximum ratings not be exceeded or device failure can result. some power supplies exhibit voltage sp ikes on their outputs when the ac power is switched on or off. in addition, volt age transients on the ac power line may appear on the dc output. when this possibility exists, it is s uggested that a clamp circuit be used. dc electrical characteristics (t a = 0c - 70c, v ddio, v dda = +3.3 v 10%, v dd, v ddp = +2.5 v 10%,) parameter symbol min typ max units comments i type input buffer low input level high input level v ili v ihi 2.0 0.8 v v ttl levels iclk input buffer low input level high input level v ilck v ihck 2.2 0.4 v v input leakage (all i and is buffers) low input leakage high input leakage i il i ih -10 -10 +10 +10 ua ua v in = 0 v in = v ddio o8 type buffer low output level high output level output leakage v ol v oh i ol 2.4 -10 0.4 +10 v v ua i ol = 8 ma @ v ddio = 3.3v i oh = -4ma @ v ddio = 3.3v v in = 0 to v ddio (note 1)
smsc usb97c201 page 55 rev. 11-05-03 datasheet parameter symbol min typ max units comments i/o8 type buffer low output level h igh o utput l evel output leakage v ol v oh i ol 2.4 -10 0.4 +10 v v a i ol = 8 ma @ v ddio = 3.3v i oh = -4 ma @ v ddio = 3.3v v in = 0 to v ddio (note 1) i/o12 type buffer low output level high output level output leakage v ol v oh i ol 2.4 -10 0.4 +10 v v a i ol = 12 ma @ v ddio = 3.3v i oh = -6ma @ v ddio = 3.3v v in = 0 to v ddio (note 1) i/o20 type buffer low output level high output level output leakage v ol v oh i ol 2.4 -10 0.4 +10 v v a i ol = 20 ma @ v ddio = 3.3v i oh = -5 ma @ v ddio = 3.3v v in = 0 to v ddio (note 1) io-u note 2 supply current unconfigured i ccinit 85 65 ma v dd, v ddp = 2.5v v dda, v ddio = 3.3v supply current active i cc 90 65 110 75 ma v dd, v ddp = 2.5v v dda, v ddio = 3.3v note 1: output leakage is measured with t he current pins in high impedance. note 2: see appendix a for usb dc electrical characteristics. note 3: supply currents are measured in hs mode. capacitance t a = 25c; fc = 1mhz; v dd = 2.5v limits parameter symbol min typ max unit test condition clock input capacitance c in 20 pf input capacitance c in 10 pf output capacitance c out 20 pf all pins except usb pins (and pins under test tied to ac ground)
smsc usb97c201 page 56 rev. 11-05-03 datasheet 8.0 ac specifications 8.1 ata/atapi the usb97c201 conforms to all timing diagrams and specif ications for atapi-5 as set forth in the t13/1321d revision 3 ncits specification. please refer to this specification for more information. 8.2 usb2.0 timing the usb97c201 conforms to all timing diagrams and specific ations for usb peripheral silicon building blocks as set forth in the usb-if usb 2.0 specif ication. please refer to this s pecification for more information.
smsc usb97c201 page 57 rev. 11-05-03 datasheet 9.0 packaging figure 6 - 100 pin tqfp package min nominal ma x remar k a ~ ~ 1.60 overall packa g e hei g ht a1 0.05 ~ 0.15 standoff a2 1.35 1.40 1.45 bod y thickness d 13.80 14.00 14.20 x s p an d/2 6.90 7.00 7.10 1 / 2 x s p an measure from centerline d1 11.80 12.00 12.20 x bod y size e 13.80 14.00 14.20 y s p an e/2 6.90 7.00 7.10 1 / 2 y s p an measure from centerline e1 11.80 12.00 12.20 y bod y size h 0.09 ~ 0.20 lead frame thickness l 0.45 0.60 0.75 lead foot len g th from centerline l1 ~ 1.00 ~ lead len g th e 0.40 basic lead pitch 0 o 3.5 o 7 o lead foot an g le w 0.13 0.16 0.23 lead width r1 0.08 ~ ~ lead shoulder radius r2 0.08 ~ 0.20 lead foot radius ccc ~ ~ 0.08 co p lanarit y notes: note 1: controlling unit: millimeter note 2: minimum space between prot rusion and an adjacent lead is .007 mm. note 3: package body dimensions d1 and e1 do not include the mold protrusion. maximu m mold protrusion is 0.25 mm note 5: details of pin 1 identif ier are optional but must be loca ted within the zone indicated.
smsc usb97c201 page 58 rev. 11-05-03 datasheet figure 7 ? 100 pin qfp package min nominal ma x remarks a ~ ~ 3.4 overall packa g e hei g ht a1 0.05 ~ 0.5 standoff a2 2.55 ~ 3.05 bod y thickness d 23.65 ~ 24.15 x s p an d1 19.90 ~ 20.10 x bod y size e 17.65 ~ 18.15 y s p an e1 13.90 ~ 14.10 y bod y size h 0.11 ~ 0.23 lead frame thickness l 0.73 0.88 1.03 lead foot len g th l1 ~ 1.95 ~ lead len g th e 0.65 basic lead pitch 0 o ~ 7 o lead foot an g le w 0.20 ~ 0.40 lead width r1 0.10 ~ 0.25 lead shoulder radius r2 0.15 ~ 0.40 lead foot radius ccc ~ ~ 0.10 co p lanarit y notes: 1 controlling unit: millimeter. 2 tolerance on the true position of the leads is 0.065 mm maximum 3 package body dimensions d1 and e1 do not include the mold protrusion. maximum mold protrusion is 0.25 mm. 4 dimension for foot length l measured at the gauge plane 0.25 mm above the seating plane. 5 details of pin 1 identifier are optional but must be locat ed within the zone indicated.
smsc usb97c201 page 59 rev. 11-05-03 datasheet 10.0 usb97c201 revisions page(s) section/figure/entry correction date revised 54 7.0 - dc parameters revised high input leakage on dc electrical characteristics table. 11/05/03 26 table 18 ? sram data port register note about delay required before accessing data. 7/09/02 27 table 21 - mcu clock source select clkvalid settling time described 7/09/02 33 table 35 ? endpoint 2 control register note about delay required after setting ramrd_toggle bits before reading isr0. 7/09/02 54 dc parameters updated to reflect actual performance. 7/09/02


▲Up To Search▲   

 
Price & Availability of USB97C20103

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X