Part Number Hot Search : 
FAN3224 IRF1405 TM6134PM 1N4748 MURS215 GB4056 20C40 IRFI360
Product Description
Full Text Search
 

To Download CXD3220R Datasheet File

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


  Datasheet File OCR Text:
  description the CXD3220R is a link/transaction layer lsi conforming to the ieee1394 serial bus standard. it is mainly used when connecting the ieee1394 digital i/f to a storage device such as a hard disk, dvd-rom, cd-rom or tape streamer. data transfer conforms to the sbp-2 protocol. this lsi utilizes apple computer's fire wire technology. features conforms to ieee1394 serial bus standard conforms to sbp-2 (serial bus protocol-2) compatible with bidirectional data transfer of computer peripherals compatible with 1394 transfer rate at 100/200mbps dedicated asynchronous data transfer high-speed data transfer through the use of an adp (automatic data pipe) circuit cycle master function direct connection to 1394 phy chip large capacity fifo data transfer fifo 532 quadlets asynchronous transmit fifo 24 quadlets asynchronous receive fifo 39 quadlets applications digital interface for computer peripheral structure silicon gate cmos ic absolute maximum ratings (ta = 25?) supply voltage v dd v ss ?0.5 to +4.6 v input voltage v i v ss ?0.5 to v dd + 0.5 v output voltage v o v ss ?0.5 to v dd + 0.5 v operating temperature topr ?0 to +75 ? storage temperature tstg ?5 to +150 ? recommended operating conditions supply voltage v dd 3.0 to 3.6 v operating temperature topr ?0 to +75 ? ?1 CXD3220R e97320-ps ieee1394 link/transaction layer controller lsi for sbp-2 sony reserves the right to change products and specifications without prior notice. this information does not convey any license by any implication or otherwise under any patents or other right. application circuits shown, if any, are typical examples illustrating the operation of the devices. sony cannot assume responsibility for any problems arising out of the use of these circuits. 100 pin lqfp (plastic)
?2 CXD3220R contents 1. block diagram ............................................................................................................................................... 3 2. pin configuration........................................................................................................................................... 4 3. pin description .............................................................................................................................................. 5 4. electrical characteristics ............................................................................................................................... 8 4-1. dc characteristics ................................................................................................................................. 8 4-2. ac characteristics ................................................................................................................................. 8 4-3. input/output capacitance ...................................................................................................................... 8 4-4. timing definition .................................................................................................................................... 9 5. system configuration example ................................................................................................................... 10 5-1. system block diagram......................................................................................................................... 10 5-2. system connection diagram ............................................................................................................... 11 6. asynchronous communication.................................................................................................................... 12 6-1. cpu i/f ................................................................................................................................................ 12 6-2. cfr...................................................................................................................................................... 15 6-3. asynchronous packet transmission .................................................................................................... 25 6-4. asynchronous packet reception ......................................................................................................... 28 6-5. CXD3220R data format ...................................................................................................................... 33 6-6. self-id packet reception error processing ......................................................................................... 43 7. adp (asynchronous data pipe) .................................................................................................................. 44 7-1. built-in fifo ......................................................................................................................................... 44 7-2. transport data i/f ................................................................................................................................ 44 7-3. adp....................................................................................................................................................... 47 7-4. adp structure and functions............................................................................................................... 49 7-5. adp setting.......................................................................................................................................... 51 8. link-phy communication ............................................................................................................................ 58 8-1. link-phy interface specifications ......................................................................................................... 58 8-2. communication .................................................................................................................................... 58
?3 CXD3220R 1. block diagram transport data if control cpu i/f adp (async transaction control, packetize according to sbp2) demux resolver control registers core 7 16 1 1 1 1 16 1 1 1 1 1 1 7 16 1 1 1 1 16 1 1 1 1 1 1 sd [0:15] xhrd xhwr xsac sdrq a [0:6] xrd xwr xcs xint xreset xwait d [0:15] decoder local processor data [0:3] ctl [0:1] lreq lps sysclk 2 4 1 1 1 2 4 1 1 1 phy asynchronous asynchronous transmit fifo asynchronous recieve fifo
?4 CXD3220R 2. pin configuration v dd v ss sd13 sd14 sd15 sdrq xsac test21 test22 address0 test17 test16 test15 v ss v dd sd4 sd3 sd2 sd1 v ss sd0 xhwr xreset test19 test18 sd8 sd6 sd9 sd12 sd11 sd10 test14 test13 sysclk test7 rsvd2 rsvd3 test12 test10 test9 lreq test8 ctl0 ctl1 v ss test11 lps rsvd0 97 96 95 94 91 92 93 10 0 99 98 81 82 83 84 76 77 78 88 87 86 85 79 80 89 90 51 52 53 54 55 56 57 58 59 60 70 69 68 67 63 64 65 66 61 62 71 72 73 74 75 36 35 34 31 32 33 26 27 28 29 30 40 39 38 37 41 42 43 44 45 46 47 48 49 50 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 v dd v ss data5 data6 data7 data8 xwr data10 data11 v ss data12 data13 data14 data15 xrd test2 (tdi) test3 (tena1) test4 (td0) test5 (vst) data4 data9 data3 data2 test0 (bist) test1 (tck) v ss v dd rsvd1 d3 test6 d1 d2 d0 test20 xhrd sd5 sd7 test23 test24 x8/16 v ss xwait address3 address4 address5 address6 data0 data1 xint xcs address1 address2
?5 CXD3220R 3. pin description pin no. symbol i/o description 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 v dd v ss data2 data3 data4 data5 data6 data7 data8 data9 data10 data11 v ss data12 data13 data14 data15 xrd xwr test0 test1 test2 test3 test4 test5 v dd v ss lps rsvd3 rsvd2 rsvd1 rsvd0 test6 i/o i/o i/o i/o i/o i/o i/o i/o i/o i/o i/o i/o i/o i/o i i o power supply gnd cpu i/f i/o data bit 2 cpu i/f i/o data bit 3 cpu i/f i/o data bit 4 cpu i/f i/o data bit 5 cpu i/f i/o data bit 6 cpu i/f i/o data bit 7 cpu i/f i/o data bit 8 cpu i/f i/o data bit 9 cpu i/f i/o data bit 10 cpu i/f i/o data bit 11 gnd cpu i/f i/o data bit 12 cpu i/f i/o data bit 13 cpu i/f i/o data bit 14 cpu i/f i/o data bit 15 cpu i/f read signal 0: read cpu i/f write signal 0: write test pin * 1 test pin * 1 test pin * 1 test pin * 1 test pin * 1 test pin 2 * 2 power supply gnd phy i/f link power status signal (high level when xreset input = low) reserved * 3 reserved * 3 reserved * 3 reserved * 3 test pin * 1 * 1 the test pins should be used open. * 2 connect the test pin 2 to gnd. * 3 rsvd0 to 3 should be used open.
?6 CXD3220R * 1 the test pins should be used open. pin no. symbol i/o description 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 d3 d2 d1 d0 v ss ctl1 ctl0 test7 sysclk test8 lreq test9 test10 test11 test12 test13 test14 v dd v ss test15 test16 test17 test18 test19 test20 xreset xhwr xhrd sd0 v ss sd1 sd2 sd3 sd4 i/o i/o i/o i/o i/o i/o i o i i i i/o i/o i/o i/o i/o phy i/f data bus bit 3 phy i/f data bus bit 2 phy i/f data bus bit 1 phy i/f data bus bit 0 gnd phy i/f control bus bit 1 phy i/f control bus bit 0 test pin * 1 phy i/f system clock (49.195mhz) test pin * 1 phy i/f request signal test pin * 1 test pin * 1 test pin * 1 test pin * 1 test pin * 1 test pin * 1 power supply gnd test pin * 1 test pin * 1 test pin * 1 test pin * 1 test pin * 1 test pin * 1 master reset signal 0: active; 1: non-active transport data i/f data write enable signal 0: non-active; 1: active transport data i/f data read enable signal 0: non-active; 1: active transport data i/f data bus bit 0 gnd transport data i/f data bus bit 1 transport data i/f data bus bit 2 transport data i/f data bus bit 3 transport data i/f data bus bit 4
?7 CXD3220R * 1 the test pins should be used open. pin no. symbol i/o description 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 sd5 sd6 sd7 sd8 sd9 sd10 sd11 sd12 v dd v ss sd13 sd14 sd15 sdrq xsac test21 test22 test23 test24 x8/16 v ss xwait xint xcs address0 address1 address2 address3 address4 address5 address6 data0 data1 i/o i/o i/o i/o i/o i/o i/o i/o i/o i/o i/o o i i o o i i i i i i i i i/o i/o transport data i/f data bus bit 5 transport data i/f data bus bit 6 transport data i/f data bus bit 7 transport data i/f data bus bit 8 transport data i/f data bus bit 9 transport data i/f data bus bit 10 transport data i/f data bus bit 11 transport data i/f data bus bit 12 power supply gnd transport data i/f data bus bit 13 transport data i/f data bus bit 14 transport data i/f data bus bit 15 transport data i/f data request signal transport data i/f acknowledge signal test pin * 1 test pin * 1 test pin * 1 test pin * 1 cpu i/f i/o data bus select signal 0: 8 bits; 1:16 bits gnd cpu i/f wait signal active when xcs = 0, high impedance when xcs = 1 cpu i/f interrupt signal 0: active; 1: non-active cpu i/f chip select signal 0: active; 1: non-active cpu i/f address bus bit 0 cpu i/f address bus bit 1 cpu i/f address bus bit 2 cpu i/f address bus bit 3 cpu i/f address bus bit 4 cpu i/f address bus bit 5 cpu i/f address bus bit 6 cpu i/f i/o data bit 0 cpu i/f i/o data bit 1
?8 CXD3220R 4. electrical characteristics 4-1. dc characteristics (ta = 25?, v ss = 0v) item symbol conditions min. typ. max. unit input voltage output voltage input leak current output leak current power supply v ih v il v oh v ol v oh v ol i i 1 i i 2 i i l i oz i cc 1 i cc 2 all input pins all input pins output pins excluding d [3:0], ctl [1:0], lreq d [3:0], ctl [1:0], lreq sd [15:0], d [3:0], ctl [1:0] normal input pins xhrd, xhwr, xrd, xreset, xsac, xwr xwait (for high impedance state) v in = vss or v dd for adp operation v dd = 3.3v for adp not operation v dd = 3.3v 0.7v dd v dd ?0.4 v dd ?0.4 ?0 ?0 ?40 ?0 ?00 90 50 0.2v dd 0.4 0.4 40 10 ?0 40 120 70 v v v v v v ? ? ? ? ma ma 4-2. ac characteristics (v dd = 3.0 to 3.6v) item applicable pins symbol conditions min. typ. max. unit input setup input hold output delay input setup input hold output delay input setup input hold output delay sd [15:0], sdrq, xsac, xhrd, xhwr d [3:0], ctl [1:0] d [3:0], ctl [1:0], lreq address [6:0], data [15:0], xcs, xwr, xrd data [15:0], xwait tsu1 th1 td1 tsu2 th2 td2 tsu3 th3 td3 cl = 10pf sysclk refer to 7-2. transport data i/f write timing and transport data i/f read timing 5 2 215 ns ns ns reference clock refer to 6-1. atf/cfr write timing and atf/cfr read timing item symbol conditions min. typ. max. unit input capacitance output capacitance i/o capacitance c in c out c i/o all input pins all input pins d [3:0], ctl [1:0], sd [15:0] 9 11 11 pf pf pf 4-3. input/output capacitance i oh = ?ma i ol = 4ma i oh = ?ma i ol = 8ma
?9 CXD3220R input tsu th td reference clock output 4-4. timing definition
?10 CXD3220R 1394 serial bus phy chip link controller transport data i/f endec/ecc disk r/w logic cpu buffer dram servo control dsp op actuator 1394 phy layer 1394 link layer storage device 5. system configuration example 5-1. system block diagram
?11 CXD3220R transport data if control cpu i/f adp (async transaction control, packetize according to sbp2) demux resolver control registers core 7 16 1 1 1 1 1 1 1 1 1 1 7 16 1 1 1 1 1 1 1 1 1 1 sd [0:15] xhrd xhwr xsac sdrq a [0:6] xrd xwr xcs xint xreset xwait d [0:7] decoder local processor data [0:3] ctl [0:1] lreq lps sysclk 2 4 1 1 1 2 4 1 1 1 phy x8/16 8 8 asynchronous transmit fifo asynchronous recieve fifo asynchronous 5-2. system connection diagram cpu interface....8bit transport data interface....16bit
?12 CXD3220R 6. asynchronous communication 6-1. cpu i/f the cpu i/f controls data communication between the external cpu and the CXD3220R atf/arf/cfr * 1 , respectively. communications between the cpu and CXD3220R include: 1) cpu writes data to atf ? asynchronous packet transmit 2) cpu reads data in arf ? asynchronous packet receive 3) cpu writes data to cfr ? mode, header data setting 4) cpu reads data in cfr ? internal status, header data read 5) CXD3220R informs cpu of an interrupt event with an interrupt signal the CXD3220R supports 16-bit and 8-bit cpu i/f. the atf/arf/cfr built in the CXD3220R have a 32-bit structure, so all bits can not be accessed with one access. the target address must be accessed two consecutive times for 16 bits and four consecutive times for 8 bits. the roles played by the signals communicated between the CXD3220R and the external cpu are given bellow. data [15:0] in/out data for writing to or reading from specified address address [6:0] in address for writing or reading data data destination (cfr or fifo) and data breakpoint (write or confirm) are discriminated according to the address xcs in access enable from host bus (low active) xwr in data write enable signal (low: write) xrd in data read enable signal (low: read) xwait out indicates access (read or write) completed to specified address (low active) xint out interrupt signal. indicates some kind of interrupt when low type of interrupt and mask specified by cfr x8/16 in cpu i/f data bus switching high: 16 bits; low: 8 bits * 1 atf (asynchronous transmit fifo), arf (asynchronous receive fifo), cfr (configuration register) in the CXD3220R, the atf has the capacity of 24 quadlets and the arf has the capacity of 39 quadlets.
?13 CXD3220R writing timing to atf/cfr aaa aaaaa tsu1 xcs address xwr data xwait tsu3 th1 th4 twrh th3 th2 twait valid tsu1 5nsec min, tsu3 13nsec max, th1 5nsec min, twrh 60nsec min twait 100nsec max, th2 8nsec max, th3 14nsec max, th4 5nsec min read timing from arf/cfr aaa aaaaa tsu1 xcs address xrd data xwait th5 trdh th4 th3 twait valid tsu1 5nsec min, th1 3nsec max, trdh 60nsec min twait 270nsec max, th2 16nsec max, th3 8nsec max, th4 14nsec max, th5 5nsec min invalid th2 th1
?14 CXD3220R configuration register (cfr) address map 0 power status 31302928272625242322212019181716151413121110987654321 00 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 70 74 version busnumber nodenumber revision nodesum cfmcontid cymas root idval rxsld phrrx busrst fairgap txen rxen cmdrst endslf rsttx rstrx atstk sntrj hdrerr tcerr cysec cyst cydne cypnd cylst cyabfail cymasen cyten bsyctrl int phyint txrdy rxdta itstk phrrx busrst fairgap cmdrst endslf atstk sntrj hdrerr tcerr cysec cyst cydne cypnd cylst cyabfail int phyint txrdy rxdta itstk cyclenumber cycleoffset arbgp frgp regrw ensnoop arfempty arf 4there arfdc arf aempty arffull arfafull rdphy wrphy atfempty arf 4avail atf aempty atffull atfafull atack phydatarxreg phyadrxreg phyregdata phyregad adpstop atf write (first quadlet of the packet) atf write (confirm write) atf write/arf read version node address control interrupt interrupt mask cycle timer diagnostics async status phy chip access adp control adp status transacton timeout adp fifo status test mode * the shaded areas ( ) are reserved and can not be used. aidt16 ackctl strsid adpst adpst adpcmp adpcmp adperr adperr sigapcnt diffgap spd retry_limit split_timeout testpin_select 78 7c lps clear atf clear arf clear adpt clear adpr adprf empty adprf aempty adptf empty adptf 4avail adptf aempty adptffull adptf afull adprffull adprf afull adprf 4there adprfdc fifochg testout arf/xatf adp1 adp2 adp3 adp4 retry_interval err rcode ack-i ack-o adpgo xfer_length page_size p max_payload d n segment_offset_low segment_offset segment_base_hige destinationid tlabel priority a [1:0] 00 01 10 11 cysrc adp reset rcvack rcvack testiso test_ control ram test
?15 CXD3220R 6-2. cfr (configuration register) this is a memory space to store the status information, operation mode and packet header information in the chip. read/write with the external cpu can be performed via the cpu i/f. the address map and register contents are shown below. register description 1) version/revision register these registers have the CXD3220R version/revision written in them. the register address is 00h; they are read only, and the default value is 3220_0000h. bit name 31 to 16 15 to 0 version revision function CXD3220R version number CXD3220R revision number 2) node address register these registers are used to monitor root/cycle master status and the total number of nodes connected, and so on. the register address is 04h and the initial value is ffff_0000h. only the bus number is for read/write, and the other registers are normally for read only, but the diagnostic register can be read/write by setting regrw to "1". bit name 31 to 22 21 to 16 15 14 13 11 to 6 5 to 0 bus number node number root power status cymas nodesum cfmcontid function bus number of connected bus node number of this link root/not root for this link 1: root; 0: not root cable power status for this mode 1: cps on; 0: cps off whether or not this link is cycle master 1: cycle master; 0: not total number of connected nodes. the value becomes "0" when an error occurs in the self id phase. this value is fixed when the interrupt register endslf bit becomes "1" from "0". the phy-id value of the contender is loaded. however, when the CXD3220R node has an ability to become the contender and this lsi has the phy-id value larger than the loaded value, the CXD3220R itself is the contender. this value is fixed when the interrupt register endslf bit becomes "1" from "0".
?16 CXD3220R 3) control register these registers perform settings for the CXD3220R basic operations. the register address is 08h; they are for read/write, and the initial value is c600_2a01h. bit name 31 30 29 to 27 26 25 21 20 13 12 11 10 9 3 0 idval rxsld bsyctrl txen rxen rsttx rstrx aidt16 ackctl cymasen cysrc cyten strsid lps function receives packet from the address set in the node address register and packet at bus number "3ffh" node number "3fh" when "1". receives packet at bus number "3ffh" node number "3fh" only when "0". validates reception of self id packet when "1". non-valid when "0". (fixed at "1" in the CXD3220R) controls busy status of input packet 000 = returns busy according to normal busy/retry protocol when necessary. (fixed at "000" in the CXD3220R) transmitter does not transmit arbitration and packet when "0". receiver does not receive packet when "0". sync resets transmitter when "1". this bit is cleared automatically. (do not use for normal operation.) sync resets receiver when "1". this bit is cleared automatically. (do not use for normal operation.) selects sd bus width. 8 bits when "0" and 16 bits when "1". controls the ack code that is sent back when a packet is received for which tcode = 0, 1 (write request quadlet/block). 0: ack code = 1 (complete), 1: ack code = 2 (pending) the cycle master function operates if the CXD3220R becomes root when "1". incrementation of the cycle number and reset of cycle offset are performed with cycle in when "1". incrementation is performed with cycle offset when "0". (this is always set to "0" internally for this link.) validates cycle offset increment when "1". (this is always set to "1" internally for this link.) takes received self id packet in at the arf when "1". does not take received self id packet in to the arf when "0". the lps pin is high when "1". the lps pin is low when "0".
?17 CXD3220R 4) interrupt and interrupt-mask registers these registers combine the interrupt register, which informs the cpu i/f of changes in the CXD3220R status, and the interrupt-mask register, which masks the interrupt register. the address of the interrupt register is 0ch, and when the regrw bit is "0", bits other than int bit and adperr bit are cleared by writing "1". when the regrw bit is "1" all bits are for read/write. the address of the interrupt-mask register is 10h and it is for read/write. when "1" is written to the corresponding bit, the interrupt becomes valid; when "0" is written, it becomes invalid. the initial value for both registers is 0000_0000h. the interrupt or corresponding to the bit where "1" is written in the interrupt-mask register becomes the int bit, resulting in the xint output signal. and the xint output signal becomes valid when "1" is written to the interrupt-mask register int bit; when "0" is written, invalid. bit name 31 30 29 28 27 26 25 24 23 22 20 19 17 16 15 11 10 9 8 7 6 int phyint phyregrx busrst fairgap txrdy rxdta cmdrst endslf rcvack itstk atstk sntrj hdrerr tcerr cysec cycst cycdne cycpnd cyclst cyabfail function all interrupt or results and their interrupt mask bits. phy interrupt was received from phy chip. data was received from phy to phy register. bus reset was received from phy. fair gap received from phy. transmitter is able to transmit. "0" when a packet is transmitted; "1" when an ack code is fixed. receiver has received a correct packet. a packet is not loaded in the arf when the self-id packet is received if the control register strsid is set to "0" and when the response packet is received at the adp circuit for adp operation. however, rxdta interrupt is set. receiver has received a packet addressed to csr reset_start register. indicates that self id phase has completed. ack code was received. transmitter detected wrong data in isochronous fifo during isochronous transmit. (always set to "0" in this ic) transmitter detected wrong data in asynchronous fifo during asynchronous transmit. receiver transmitted busy ack for a packet transmitted to this node because received fifo is full. receiver detected header crc error in the packet transmitted to this note. transmitter detected wrong tcode data in transmitted fifo. cycle timer register cycle number upper 7 bits were incremented. (this is generated almost every second when cycle timer is valid.) transmitter/receiver transmitted/received cycle start packet. after transmit or receive of cycle start packet, fair gap was detected on the bus. this means that the isochronous cycle is complete. cycle timer register cycle offset is "0". stays as is until isochronous cycle is complete. when not cycle master, cycle timer completed two cycles without receiving cycle start packet. failure of cycle start packet transmission arbitration.
?18 CXD3220R 5) cycle timer registers these registers are composed of the 24.576mhz clock cycle cycle offset and the 125s in its host, and the cycle number that counts one second. the value of all nodes are regulated by the cycle master node. the register address is 14h; it is for read/write, and the initial value is 0000_0000h. bit name 31 to 12 11 to 0 cyclenumber cycleoffset function the upper 7 bits count seconds (1hz) and the lower 13 bits count the isochronous cycle (8khz = 125s). the values are controlled by control register cycle master and cycle timer enable. counts the system clock (24.576mhz). the cycle number is incremented when this counter completes one cycle. the value is controlled by control register cycle master and cycle timer enable. bit name 31 30 29 28 27 6 5 to 0 ensnoop bsyf arbgp frgp regrw diffgap sigapcnt function receives all packets on the bus regardless of receiver address and format when "1". invalid when "0". ack to be sent back next is "ack_busyb" when "1". ack to be sent back next is "ack_busya" when "0". bus is in idle state due to arbitration reset gap. bus is in idle state due to fair gap. almost all registers are for read/write when "1". "1" when there is dispersion in gap count values in received self id. this value is fixed when the interrupt register endslf bit becomes "1" from "0". the value is entered when all gap count values in received self id are the same. "00h" when bus reset is generated. 6) diagnostic register this register controls or monitors the CXD3220R status. the register address is 18h and the initial value is 0000_0000h. only the ensp bit and regrw bit are for read/write; other bits are for read/write when the regrw bit is "1" and for read only when it is "0". bit name 5 4 3 adpst adpcmp adperr function the adp has started. the adp has completed. an error has occurred during adp processing. in order to clear adperr bit, write "1" to this bit after "1" is written to adp control register adpreset bit.
?19 CXD3220R bit name 31 30 29 28 27 26 23 22 21 20 19 15 13 3 to 0 arffull arfafull arf4th arfdc arfaempty arfempty atffull atfafull atf4avail atfaempty atfempty clearatf cleararf atack function the arf is full when "1" and receive is not possible. the arf can receive only one more quadlet when "1". the atf can write more than four quadlets of data when "1". this is the control bit for reading a packet from arf, and is "1" only for the first and last quadlets of the packet. only one more quadlet of data is written in the arf when "1". the arf is empty when "1" and there is no data to be read. the atf is full when "1" and write is not possible. only one more quadlet can be written in the atf when "1". more than four quadlets of data can be written in the atf when "1". the atf has only one more quadlet of data not transmitted when "1". the atf is empty when "1" and there is no data for transmit. sync reset of atf when "1" (self clear). sync reset of arf when "1" (self clear). value of received ack code. this is fixed when the txrdy bit becomes "1" from "0" and the fixed value is maintained till the next act code is received. 7) asynchronous transmit and received fifo status registers these registers can monitor and control the atf/arf statuses. the register address is 1ch and the initial value is 0428_0000h. only the clear atf bit and clear arf bit are for read/write; other bits are for read/write when the regrw bit is "1" and read only when it is "0". bit name 31 30 27 to 24 23 to 16 11 to 8 7 to 0 rdphy wrphy phyregad phyregdata phyadrxreg phydatarxreg function the CXD3220R requests read to the address set in phyrgad via the phy i/f when "1". the CXD3220R requests write to the address set in phyrgad via the phy i/f when "1". sets the read/write address of the connected phy chip phy register. value of data for write to address specified by phyregad. value of the read phy register address during read. value of the read phy register data during read. 8) phy chip access registers these registers are used for read/write of the contents of the phy chip phy register connected to the CXD3220R. the register address is 20h and the initial value is 0000_0000h.
?20 CXD3220R 9) adp1 registers these registers are used to set the adp. the register address is 24h and the initial value is 0000_0000h. bit name 15 to 10 3 to 0 tlabel priority function indicates the transaction label and is used in a pair with the response packet to that request packet. (do not use the tlabel set with adp for packets transmitted from the atf.) indicates the priority level of the packet. in the case of a value other than "0", the transmitter uses priority arbitration for this packet. 10) adp2 registers these registers are used for setting of the adp. the register address is 28h and the initial value is 0000_0000h. bit name 31 to 16 15 to 0 destinationid segment_base _high function the bus number of the destination of the packet is represented with 10 bits, while the node number is represented with 6 bits. for a continuous area (segment_base_high, segment_base_low and, depending on the case, segment_offset), this indicates the address of the address space of the destination node. 11) adp3 registers these registers are used for setting of the adp. the register address is 2ch and the initial value is 0000_0000h. all 32 bits are at segment_base_low when in mode0 or 1. in mode2, the lower bit (page_size + 8) is at segment_offset, while the upper bit is at segment_base_low. mode0 and mode1 bit name 31 to 0 segment_base _low function for a continuous area (segment_base_high, segment_base_low), this indicates the address of the address space of the destination node. this address must be in word units when the control register aidt16 = "1" in mode1. mode2 bit name 31 to b (b ?1) to 0 segment_base _low segment_offset function for 3 continuous areas (segment_base_high, segment_base_low, segment_offset), this indicates the address of the address space of the destination node. this address must be in word units when the control register aidt16 = "1". in the case of mode2 that supports transfer by page_table, this indicates the lower bit of the first address of the element. it also sets the segment_offset value of orb. b = (page_size + 8)
?21 CXD3220R 12) adp4 registers these registers are used for setting of the adp. the register address is 30h and the initial value is 0000_0000h. bit name 31 27 26 to 24 23 to 20 19 18 to 16 15 to 0 notify (n) direction (d) spd max_payload p page_size xfer_length function this is the notify bit of the orb format. this has not effect on this ic. please use it as memory. this is used to determine the direction of adp transfer. 0: reception of data from the initiator to this link. 1: transmission of data from this link to the initiator. this is used to set the direction value of the orb. (since adp transmission and reception is switched with this bit, only perform writing to this register after the series of transactions with the adp have been completed and the adp is not operating.) this is the transfer rate of the 1394 serial bus. 0: s100 1: s200 2 to 7: reserved (do not set to these values.) this bit is used to set the spd value of the orb. this indicates the maximum data_length with 2^ (max_payload + 2). it is used to set the max_payload value of the orb. a value of 8 is set when a value larger than 8 is set with the CXD3220R. this is the page_table_present bit. this is set to "1" when using the page_table, and set to "0" when not using. the device enters mode2 when "1". this is used to set the p value of the orb. this bit represents the data_length of one page. page_length is represented with 2^ (page_size + 8). it is used to set the page_size value of the orb. this represents the data buffer length in mode0 or 1, and is used to set the data_size value of the orb. in mode2, it represents the segment length, and is used to set the segment_length value of the page table. (do not start the adp when xfer_length = 0.) 13) adp control registers these registers are used for controlling the adp. the register address is 34h and the initial value is 0000_0000h. bit name 2 1 0 adpreset adpstop adpgo function returns the adp to the initial state. clears the adp status register. this bit is set to "1" when stopping the adp. the adp is then stopped after it has normally completed the transaction of the packet currently loaded in the adptf or an error has occurred, after which this bit is cleared. this bit is set to "1" when starting the adp. the adp is then stopped after it has normally completed or an error has occurred, after which this bit is cleared.
?22 CXD3220R 14) adp status registers these registers are used for reading the adp status value. the register address is 38h and the initial value is 0000_0000h. this register is for read only. bit name 15 to 12 11 to 8 7 to 4 3 to 0 err rcode ack-i ack-o function this indicates the error code (see below) of the adp. the interrupt adperr bit rises when an error has occurred. this indicates the response code of a response packet that has returned to the adp from the initiator. "1111" is written in the case of a write transaction that has become a unified transaction. writes the ack code for the request packet. writes the ack code transmitted by the adp for the response packet. these registers are cleared when a adpgo bit has been set. after a adpgo bit has been set and the adp has started, the following occurs in the case any type of error occurs in the request packet or response packet. 1) generation of a request packet is stopped. 2) the rcode and ack are latched, and stored in the adp status register. 3) an interrupt is generated. this register is cleared when adpreset = 1. err value 0 (all clear) 1 2 3 4 5 6 7 8 meaning no error error ack code received (for request packet) error ack code sent (for response packet) split transaction time-out busy_timeout bus reset occurred bad rcode received receive response packet from a node other than the specified node bad tcode received (bad tcode is 2 [d = 0], 6/7 [d = 1]) (when two or more error codes occur at the same time, the code with the lower code value is displayed.)
?23 CXD3220R 15) transaction timeout registers in the case the ack code of ack_busy has returned after the adp has sent a request packet, there is a function for retransmitting the subject request packet. these registers are used to set the limit value of the timeout required until a response packet is sent back after a request packet has been transmitted during split transaction, as well as the upper limit of the number of times retry is performed when an ack code has returned as ack_busy. the register address is 3ch, and the initial value is 800 (dec). bit name 27 to 20 19 to 16 15 to 0 retry_interval retry_limit split_timeout function this designates the retry interval. the packet is retransmitted after waiting for 125s (retry_interval). when set to "0", transmission is performed immediately without waiting for the interval. the retry_limit bit controls retry when a single-phase retry protocol is in use. when this bit is set to "0", packet transfer that was busy is not retried. when set to a value other than "0", packet transfer is retried for the maximum number of retries (retry_limit) until any ack code returns other than a busy acknowledgement. when a packet is unable to be transferred as a result of being busy after the maximum number of retries, the adp stops the processing of that packet. a busy_timeout error is indicated in the err field of the adp status register. when split transactions are being performed, the adp stops processing when the amount of time for a response packet sent in response to a request packet to return exceeds (split_timeout 125) s. a split transaction_timeout error is displayed in the err field of the adp status register. 16) adp fifo status registers these registers make it possible to monitor and control adp status. the register address is 40h and the initial value is 0428_0000h. reading and writing are only possible for the clear adptf bit and clear adprf bit. reading and writing of other bits is possible only when the regrw bit is set to "1". these bits are for read only when it is set to "0". bit name 31 30 29 28 27 26 23 22 21 20 19 15 13 adprffull adprfafull adprf4th adprfdc adprfaempty adprfempty adptffull adptfafull adptf4avail adptfaempty adptfempty clearadptf clearadprf function indicates that the adprf is full and reception is not possible when "1". indicates that the adprf is able to receive only one more quadlet when "1". indicates that four or more quadlets of data have been written into the adprf when "1". this is a control bit for reading packets from the adprf. this bit is "1" only during the first and last quadlets of a packet. indicates that only one quadlet of data has been written into the adprf when "1". indicates that the adprf is empty and there is no data that can be read when "1". indicates that the adptf is full and that writing is not possible when "1". indicates that only one more quadlet can be written into the adptf when "1". indicates that only four more quadlets can be written into the adptf when "1". indicates that there is only one quadlet of data that has not been transmitted in the adptf when "1". indicates that the adptf is empty and there is no data that can be transmitted when "1". sync resets the adptf when "1" (self clear). sync resets the adprf when "1" (self clear).
?24 CXD3220R 17) test mode registers these registers are used to control the test mode of the CXD3220R. they are normally set to 0000_0000h. the register address is 44h and the initial value is 0000_0000h. do not write in this register. 18) atfwrite (first quadlet of the packet) registers the first quadlet of the transmitted asynchronous packet is written in these registers. the register address is 70h and the initial value is 0000_0000h. bit name 31 to 0 atfwrite (first quadlet of the packet) function writes the first quadlet of the transmitted asynchronous packet. 19) atfwrite/arfread registers the second through the next to the last quadlets of the transmitted asynchronous packet are written in these registers. also, the asynchronous packet read from the arf during receive is written one quadlet at a time. the register address is 74h and the initial value is 0000_0000h. bit name 31 to 0 atfwrite /arfread function transmit: writes the second through the next to the last quadlets of the transmitted asynchronous packet. receive: reads one quadlet at a time for the asynchronous packet read from arf. 20) atfwrite (confirm write) registers the last quadlet of the transmitted asynchronous packet is written in these registers. the register address is 7ch and the initial value is 0000_0000h. bit name 31 to 0 atfwrite (confirm write) function writes the last quadlet of the transmitted asynchronous packet.
?25 CXD3220R 6-3. asynchronous packet transmission packet data is written from the external cpu to the atf inside the CXD3220R in order to transmit an asynchronous packet. at this time the first quadlet of the packet only is written in the cfr atfwrite (first quadlet of the packet) register (70h). the second through the next to the last quadlets are written in the cfr atfwrite/arfread registers (74h). then the last quadlet is written in the cfr atfwrite (confirm write) register (7ch) and the packet is stored in the atf. however, if the atf is full, write will not actually be performed even when write is executed. once the bus is enabled, transmit takes place automatically. the procedure for transmitting a quadlet write request packet is given here as an example. (for 8-bit data interface) (1) confirming that the atf is not full the cfr async status register (1ch to 1fh) is read to confirm that the 23th bit (atffull bit) is low. if it is high it means that there are some unsent packets stored and it waits until they are transmitted. the number of quadlets that can be stored in the atf can be found from the value of the async status register bits [23:19]. the following six states can be found, so a judgment must be made as to whether write is possible from the number of quadlets in the packet being sent from the external cpu. atffull = high: can't write atfafull = high: only one quadlet all bits low: 2 to 3 quadlets atf4avail = high: 4 to 22 quadlets atf4avail = high, atfaempty = high: 4 to 23 quadlets atf4avail = high, atfempty = high: 4 to 24 quadlets xrd this indicates that the atf is empty. it is "80h" when the atf is full. data aaaa aaaa aaa aaa 1ch address 1dh 1eh 1fh xcs xxh xxh 28h xxh
?26 CXD3220R (2) first quadlet of the transmitted packet write let the first quadlet of the quadlet write request packet be "00000000h". this is written in the cfr atfwrite (first quadlet of the packet) register. xwr data aaaa aaaa aaa aaa 70h address 71h 72h 73h xcs 00h 00h 00h 00h (3) second quadlet of the transmitted packet write let the second quadlet of the quadlet write request packet be "ffc1ffffh". this is written in the cfr atfwrite/arfread register. xwr data aaaa aaaa aaa aaa 74h address 75h 76h 77h xcs ffh ffh c1h ffh (4) third quadlet of the transmitted packet write let the third quadlet of the quadlet write request packet be "f000000ch". this is written in the cfr atfwrite/arfread register. xwr data aaaa aaaa aaa aaa 74h address 75h 76h 77h xcs 0ch 00h 00h f0h
?27 CXD3220R (5) last quadlet of the transmitted packet write let the last quadlet of the quadlet write request packet be "12345678h". this is written in the cfr atfwrite (confirm write) register. xwr data aaaa aaa 7ch address 7dh 7eh 7fh xcs 78h 56h 34h 12h the quadlet write request packet is stored in the atf as shown above. when the bus is enabled, the CXD3220R transmits automatically. if transmit does not take place, the cfr interrupt register (0ch to 0fh) must be read to confirm if the atstk bit or tcerr bit is high. if these bits are high, the packet stored in the atf may not be correct. atstk = high: if the first quadlet of the packet was not written in the cfr atfwrite (first quadlet of the packet) register but was written in the atfwrite/arfread register or the atfwrite (confirm write) register. tcerr = high: a value that is not a transaction code able to be transmitted by asynchronous packet is written in the tcode field of the first quadlet of the packet. the transaction codes that can be transmitted as asynchronous packets are any of (0, 1, 2, 4, 5, 6, 7, 9, b, eh). for either of atstk or tcerr above, the next packet for write will not be transmitted even if it is correct. at this time "1" must be written in the cfr async status register clearatf bit in order to clear the atf. transmit is then enabled when a correct packet is written.
?28 CXD3220R 6-4. asynchronous packet reception basically, if there is room to write the packet in fifo and the destination_id matches, then asynchronous packets are received. receive is completed when the packet data is read from the arf inside the CXD3220R by the external cpu. the CXD3220R raises an rxdta flag when a packet is received. (normally, if the rxdta bit of the cfr interrupt mask register (10h to 13h) is set to "1", xint goes low when a packet is received and this can be detected.) next, the cfr async status register (1c to 1fh) arfempty bit should be low. this indicates that a correct packet was received. after this, one quadlet at a time can be read by reading the cfr atfwrite/arfread registers (74h to 77h). packet receive is completed by repeating this until the arfempty bit goes high. however, if the arf status is empty, read will not be done even if it is executed. in this case, the data read by the cpu will be the previously read value. the procedure for receiving a quadlet write request packet is given here as an example. (for 8-bit data interface) (1) confirming that the packet was received the cfr interrupt register (0ch) is read to confirm that the 25th bit (rxdta bit) is high. xrd this indicates that rxdta only was generated. data aaaa aaaa aaa aaa 0ch address 0dh 0eh 0fh xcs xxh xxh xxh 82h when only desiring to know information about the register of the lower 2 bits a [1:0] = 00 of the address, only the address of a [1:0] = 00 may be read. in the case of reading register information for a [1:0] = 01, 10, 11 read the addresses in order starting from the address of a [1:0] = 00.
?29 CXD3220R xrd data aaaa aaaa aaa aaa 1ch address 1dh 1eh 1fh xcs xxxxx0xxb this indicates no arfempty flags up. in the above example, arfempty is low. data read is possible because the arfempty bit is low. (3) first quadlet of the received packet read the cfr atfwrite/arfread register is read. xrd data aaa aaa aaa aaa 74h address 75h 76h 77h xcs 00h 00h c0h ffh the data read is "ffc00000h". at this time, the arfdc bit is high (from (2) above), so this quadlet is the first quadlet. (2) confirming that the received packet was stored correctly in fifo the cfr async status register (1c to 1fh) is read to confirm that the 26th bit (arfempty bit) is low. if this bit is high it means that reception may be in progress (all quadlets have not arrived). in this state, do not read the arf read register (74 to 77h). wait some time and again read the async status register to confirm the arfempty bit.
?30 CXD3220R (4) second quadlet of the received packet read the cfr atfwrite/arfread register is read. xrd data aaaa aaaa aaa aaa 74h address 75h 76h 77h xcs ffh ffh c1h ffh (5) third quadlet of the received packet read the cfr atfwrite/arfread register is read. xrd data aaaa aaa 74h address 75h 76h 77h xcs 20h 02h 00h f0h (6) fourth quadlet of the received packet read the cfr atfwrite/arfread register is read. xrd data aaaa aaa 74h address 75h 76h 77h xcs 78h 56h 34h 12h the data read is "ffc1ffffh". the data read is "f0000220h". the data read is "12345678h".
?31 CXD3220R (7) checking for remaining packets still in fifo four quadlets were read in preceding items (1) to (6). they were read continuously because arf4there was high. if arf4there was low, async status must be read after one quadlet is read, to find out if arfempty is high. even if arf4there is high, as in this case, after the fourth quadlet read must be done while checking arfempty and arfdc in the same way. xrd this indicates that the dc flag of the arf is "0", the dc flag for received data that was read previously was not up, and that the arf is almost empty and atf is empty. data aaaa aaaa aaa aaa 1ch address 1dh 1eh 1fh xcs xxh xxh xxh xxx01xxxb in the above example the arf4there bit is low, so a maximum of three more quadlets can be predicted, but the arfaempty bit is high, so there is only one more quadlet in fifo. (8) fifth quadlet of the received packet read the cfr atfwrite/arfread register is read. xrd data aaa aaa aaa aaa 74h address 75h 76h 77h xcs 01h 00h 00h 00h the data read is "00000001h". the lower 4 bits of this quadlet are the acksent field, and this indicates "01h" transmitted as this packet's ack_code. this is always written even if the packet is one which does not have ack_code transmitted, such as a broadcast packet. if this value is "04h", the arf may have become full during receive and quadlets may be missing. if it is "0dh", an error was detected in the data field crc check of the received packet, or data_length and the actual data length do not match.
?32 CXD3220R (9) checking for remaining packets still in fifo the last quadlet was read in (8) above, so there should be no more packets in fifo. this is checked as follows. xrd this indicates that the arf dc flag is up, and arf is empty. data aaaa aaaa aaa aaa 1ch address 1dh 1eh 1fh xcs xxh xxh xxh 14h this confirms that the arf is empty. this completes asynchronous packet reception.
?33 CXD3220R 6-5. CXD3220R data format 6-5-1. asynchronous transmit the following are the four basic formats for asynchronous data during transmit. a) no-data packets (used for quadlet read requests and all write responses.) b) quadlet packets (used for quadlet write requests, quadlet read responses and block read requests.) c) block packets (used for lock requests, lock responses, block write requests and block read responses.) d) unformatted data 6-5-1-1. no-data transmit the data format for no-data transmit is shown below. the first quadlet contains packet control information. the second and third quadlets contain 16-bit destination id and 48-bit destination offset for request, or response code for response. 0 31302928272625242322212019181716151413121110987654321 spd tlabel tcode destinationid destinationoffsethigh priority rt imm destinationoffsetlow field name imm spd tlabel rt tcode priority destinationid destinationoffsethigh, destinationoffsetlow rcode description immediately tries to transmit continuously after acknowledge is sent, if "1" is set. (used for phy read and lock response.) transmit speed 00: 100mbps; 01: 200mbps; 10: 400mbps; 11: reserved transaction label. used as a pair with response packet relative to request packet. this packet's retry code. 00: retry_1; 01: retry_x, 10: retry_a, 11: retry_b this packet's transaction code. this packet's priority level. for values other than "0", the transmitter uses priority arbitration relative to this packet. indicates this packet's destination bus number in 10 bits and the node number in 6 bits. these two continuous areas indicate destination node address space address. this address must be in quadlet units. response code for write response packet. no-data transmit fields 0 31302928272625242322212019181716151413121110987654321 spd tlabel tcode destinationid priority rt imm rcode quadlet read request transmit format write response transmit format
?34 CXD3220R 6-5-1-2. quadlet transmit the data format for quadlet transmit is shown below. the first quadlet contains packet control information. the second and third quadlets contain 16-bit destination id and 48-bit destination offset for request, or response code for response. the fourth quadlet is quadlet data for read response and quadlet write request, and data length and reserved for block read request. 0 31302928272625242322212019181716151413121110987654321 spd tlabel tcode destinationid quadlet data destinationoffsethigh priority rt imm destinationoffsetlow 0 31302928272625242322212019181716151413121110987654321 spd tlabel tcode destinationid priority rt imm rcode quadlet data 0 31302928272625242322212019181716151413121110987654321 spd tlabel tcode destinationid datalength destinationoffsethigh priority rt imm destinationoffsetlow quadlet write request transmit format quadlet read response transmit format block read request transmit format
?35 CXD3220R field name imm spd tlabel rt tcode priority destinationid destinationoffsethigh, destinationoffsetlow quadlet data rcode datalength description immediately tries to transmit continuously after acknowledge is sent, if "1" is set. (used for phy read and lock response.) transmit speed. 00: 100mbps; 01: 200mbps; 10: 400mbps; 11: reserved transaction label. used as a pair with response packet relative to request packet. this packet's retry code. 00: retry_1; 01: retry_x, 10: retry_a, 11: retry_b this packet's transaction code. this packet's priority level. for values other than "0", the transmitter uses priority arbitration relative to this packet. indicates this packet's destination bus number in 10 bits and the node number in 6 bits. these two continuous areas indicate destination node address space address. this address must be in quadlet units. writes transmitted data for quadlet write requests and quadlet read response. response code for quadlet response packet. writes how many bytes requested for block read request. quadlet transmit fields
?36 CXD3220R 6-5-1-3. block transmit the data format for block transmit is shown below. the first quadlet contains packet control information. the second and third quadlets contain 16-bit destination id and 48-bit destination offset for request, or response code for response. the fourth quadlet contains data length and extended transaction code (all "0" except for lock transaction). 0 31302928272625242322212019181716151413121110987654321 destinationid tlabel tcode block data datalength extendedtcode priority rt spd imm destinationoffsethigh destinationoffsetlow 0 31302928272625242322212019181716151413121110987654321 destinationid tlabel tcode block data datalength extendedtcode priority rt spd imm rcode block transmit format block read or lock response transmit format
?37 CXD3220R field name imm spd tlabel rt tcode priority destinationid destinationoffsethigh, destinationoffsetlow quadlet data rcode datalength extendedtcode block data description immediately tries to transmit continuously after acknowledge is sent, if "1" is set. (used for phy read and lock response.) transmit speed. 00: 100mbps; 01: 200mbps; 10: 400mbps; 11: reserved transaction label. used as a pair with response packet relative to request packet. this packet's retry code. 00: retry_1; 01: retry_x, 10: retry_a, 11: retry_b this packet's transaction code. this packet's priority level. for values other than "0", the transmitter uses priority arbitration relative to this packet. indicates this packet's destination bus number in 10 bits and the node number in 6 bits. these two continuous areas indicate destination node address space address. writes transmitted data for quadlet write request and quadlet read response. response code for quadlet response packet. writes how many bytes requested for block read request. specifies actual lock action performed by this packet data when tcode is a lock transaction. writes transmitted data. this data is not written in fifo when datalength = 0. the first byte of the block must indicate the upper byte of the first data, regardless of data destination or source listing. block transmit fields
?38 CXD3220R 6-5-1-4. unformatted transmit (phy configuration packet) the data format for unformatted transmit during phy configuration packet transmit is shown below. the first quadlet contains packet control information. the remaining quadlets contain data, and get on the bus and are transmitted regardless of format. there is no crc attached to the packet data. further, there is no crc attached to the first quadlet. logical-inverse is not added at link core, so it must be added when transmitting. field name 00 phy_id r t gap_cnt description indicates that the transmit packet is a phy configuration packet. sets the force_root bit of the node with this phy_id sets to "1". (only valid when r is set to "1".) sets the force_root bit of the node with this phy_id to "1" when "1", and clears other nodes' force_root bit. the phy_id area is ignored when "0". sets the value of the phy_configuration.gap_count of the phy register to the value of gap_cnt when "1". indicates values of all node new phy_configuration.gap_count. these values are received immediately and stored in the register. it becomes valid after the next bus reset. unformatted transmit (phy configuration packet) fields 0 31302928272625242322212019181716151413121110987654321 tcode =1110 priority 1 spd 0000 0000 0000 0000 gap_cnt t r 00 phy_id logical inverse of 2nd quadlet data unformatted transmit format 1 (phy configuration packet)
?39 CXD3220R 0 31302928272625242322212019181716151413121110987654321 tcode =1110 priority 1 spd 0000 0000 0000 0000 0000 01 phy_id logical inverse of 2nd quadlet data 0000 field name 01 phy_id description indicates that the transmit packet is a link-on packet. indicates the phy chip id of this packet's destination. unformatted transmit (link-on packet) fields 6-5-1-5. unformatted transmit (link-on packet) the data format for unformatted transmit during link-on packet transmit is shown below. the first quadlet contains packet control information. the remaining quadlets contain data, and are transmitted regardless of format. there is no crc attached to the packet data. further, there is no crc attached to the first quadlet. logical-inverse is not added at link core, so it must be added when transmitting. unformatted transmit format 1 (link-on packet)
?40 CXD3220R 6-5-2. asynchronous receive the following are the three basic formats for asynchronous data during receive. a) no-data packets (used for quadlet read requests and all write responses.) b) quadlet packets (used for quadlet write requests, quadlet read responses and block read requests.) c) block packets (used for lock requests, lock responses, block write requests and block read responses.) the names of received data areas and their contents are given below. field name destinationid tlabel rt tcode priority sourceid destinationoffsethigh, destinationoffsetlow rcode quadlet data datalength extendedtcode block data spd acksent description this node's busnumber (all "0" if "local bus") and nodenumber (all "1" if broadcast). transaction label. used as a pair with response packet relative to request packet. this packet's retry code. 00: retry_1; 01: retry_x, 10: retry_a, 11: retry_b this packet's transaction code. this packet's priority level. the node id of the node that sent this packet. these two continuous areas indicate destination node address space address. response code for response packet. received data is written for quadlet write requests and quadlet read response. the number of bytes in received block type's packet data. specifies actual lock action performed by this packet data when tcode is a lock transaction. received data is written. this data is not written in fifo when datalength = 0. the first byte of the block must indicate the upper byte of the first data, regardless of data destination or source listing. speed of received packet. 00: 100mbps; 01: 200mbps; 10: 400mbps; 11: reserved acknowledge code sent by link core relative to this packet is written. asynchronous receive fields
?41 CXD3220R 6-5-2-1. no-data receive the data format for no-data receive is shown below. the first quadlet contains the destination id and other packet headers. the second and third quadlets contain 16-bit source id and 48-bit destination offset for request, or response code for response. the last quadlet contains packet receive status. 0 31302928272625242322212019181716151413121110987654321 destinationid tlabel tcode sourceid spd acksent priority rt destinationoffsethigh destinationoffsetlow 0 31302928272625242322212019181716151413121110987654321 destinationid rcode tlabel tcode sourceid spd acksent priority rt quadlet read request receive format write response receive format
?42 CXD3220R 6-5-2-2. quadlet receive the format for quadlet receive is shown below. the first quadlet contains the destination id and other packet headers. the second and third quadlets contain 16-bit source id and 48-bit destination offset for request, or response code for response. the fourth quadlet contains data for read request and quadlet write request, and data length and reserved for block read request. the last quadlet contains packet receive status. 0 31302928272625242322212019181716151413121110987654321 destinationid tlabel tcode sourceid spd acksent priority rt destinationoffsethigh destinationoffsetlow quadlet data 0 31302928272625242322212019181716151413121110987654321 destinationid rcode tlabel tcode sourceid spd acksent priority rt quadlet data 0 31302928272625242322212019181716151413121110987654321 destinationid tlabel tcode sourceid spd acksent priority rt datalength destinationoffsethigh destinationoffsetlow quadlet write request receive format quadlet read response receive format block read request receive format
?43 CXD3220R 6-5-2-3. block receive the format for block receive is shown below. the first quadlet contains the destination id and other packet headers. the second and third quadlets contain 16-bit source id and 48-bit destination offset for request or the response code for response. the fourth quadlet contains data length and extended transaction code (all "0" except for lock transaction). this is followed by block data. the last quadlet contains packet receive status. 0 31302928272625242322212019181716151413121110987654321 destinationid tlabel tcode sourceid spd acksent priority rt destinationoffsethigh destinationoffsetlow block data datalength extendedtcode 6-6. self-id packet receiving error processing in the self id phase after bus reset on the CXD3220R, if the self id packet could not be received correctly, self id packet receive is stopped immediately and the node_sum value becomes "0". the external cpu thus can judge that the self id phase could not be completed correctly. 0 31302928272625242322212019181716151413121110987654321 destinationid tlabel tcode sourceid spd acksent priority rt block data datalength extendedtcode rcode block write or lock request receive format block read or lock response receive format
?44 CXD3220R 7. adp (asynchronous data pipe) the CXD3220R is equipped with a function referred to as adp for automatically transmitting and receiving the data of computer peripherals in the form of asynchronous packets based on the sbp-2 protocol. a dedicated i/o data bus and several control signal pins are used to perform exchange of data with the decoder/encoder of various systems (see below). this function also supports the transport data i/f compatible with both 8-bit and 16-bit data. name width sd xhwr xhrd sdrq xsac 16 1 1 1 1 i/o i/o input input output input description data bus data write strobe signal data read strobe signal data request signal acknowledge signal for sdrq 7-1. built-in fifo the CXD3220R is equipped with a built-in dedicated fifo for sbp2 data transfer. there are two types of fifo: a large-capacity fifo_a and a small-capacity fifo_b. the capacity of fifo_a is 532 quadlets, and is able to contain two 1 kb asynchronous packets. the capacity of the fifo_b is 12 quadlets. use the CXD3220R with a maximum asynchronous packet size of 1024 bytes.
?45 CXD3220R 7-2. transport data i/f 7-2-1. data bus this data interface is 8 bits/16 bits, and switching is done by accessing the cfr aidt16 register. (the default value is 16 bits.) 7-2-2. transmit interface the CXD3220R supports only asynchronous communication for a single login of one initiator per target. it does not support communication of multiple transport data with asynchronous packets. the adp cannot be used for simultaneous transmission and reception. the timing chart for the interface is indicated below. the restriction on the transport data sdrq output frequency is 12.288mhz (max.). transmit interface ? sdrq (1) endec ic ? link ic tswhd 3 20ns thwhd 3 0ns tacwr 3 0ns thwrl 3 50ns twrac 3 0ns tdlac 3 0ns thlac 45ns max thrq 30ns min tcycdr 3 81.4ns sd15 to 8 odd byte (byte 1, 3, 5 ) sd7 to 0 even byte (byte 0, 2, 4 ) ? xsac ? xhwr ? sd15 to 0
?46 CXD3220R 7-2-3. received interface the CXD3220R only supports asynchronous communication for a single login of one initiator per target. it does not support communication of multiple transport data with asynchronous packets. the adp cannot be used for simultaneous transmission and reception. the timing chart is indicated below. the restriction on the transport data sdrq output frequency is 12.288mhz (max.). received interface ? sdrq (2) endec ic ? link ic tsrhd 3 25ns thrhd 3 0ns tacrd 3 0ns thrdl 3 50ns trdac 3 0ns tdlac 3 0ns thlac 45ns max thrq 30ns min tcycdr 3 81.4ns ? xsac ? xhrd ? sd15 to 0
?47 CXD3220R 7-3. asynchronous data pipe (adp) performance is an important factor for data transfer of computer peripherals. although the transaction layer has conventionally been controlled mainly with software, the cxd3220 realizes control with hardware. the result is faster data transfer processing. the CXD3220R contains a built-in circuit referred to as adp that controls the 1394 asynchronous transaction layer in accordance with the ieee1394 protocol. this adp enables packet transfer to be performed automatically via the 1394 serial bus in accordance with sbp-2 protocol. consequently, sequences based on the sbp-2 protocol such as orb (operation request block) fetch, data transfer, status transmission to the initiator and so forth can be simplified, enabling the use of the optimum design when connecting the data of a disk drive, tape streamer or other computer peripherals to ieee1394. 7-3-1. adp sequence (data transfer) the following provides an explanation of those adp functions relating to transmission based on the diagram below. as is defined in the sbp-2 protocol, data transfer with respect to transmission is initiated by a target. therefore, data transfer is performed in the form in which the target (this link ic) is written into initiator memory using the 1394 write block command for the initiator (e.g., host computer). the following illustrates a brief overview of that sequence. 1) first, the cpu initializes the adp register according to the contents of the orb obtained. 2) once the adp has been initiated, the cxd3220 asserts the sdrq and begins to request data from the decoder. data output from the decoder in synchronization with the sdrq is input to the fifo of the adp (adptf). 3) data is then packetized in accordance with the sbp-2 data transfer format, and packet data to which the 1394 header has been added is automatically stored in the adptf. (a block write request is used for the packets.) 4) when data equal to or greater than the size of one 1394 packet is read into the adptf, that data is sent to the 1394 link core. the link core then applies arbitration to the 1394 bus (via phy ic). 5) once a bus has been acquired, the block write request containing the transport data is transmitted to the initiator. 6) after transmission, an ack code for the write request packet and, depending on the case, a write response packet, are sent to the target from the initiator. if this ack code and response code are normal, the adp transmits the next data. in the case of an error, the status is returned as an error and an interrupt is generated to the cpu. 7) the tcode and transaction label of packets that are received by the link core are checked, and only the response packet returned to the adp is input to the adp. (this is not stored in the adprf.) other packets are input to the arf. 8) the adp writes the rcode of the received response packet into the register. this is the role of the adp with regard to transmission. adp schematic diagram adptf adp link request endec link core link response arbitration & packet transmit acknowledge (or write response) aaa a a a a a a a a a aaa aaa aaa transfer data from media sbp2 packets ieee1394 serial bus 1 lba 1 lba aaa 1394 header aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 1394 write request packetize according to sbp2
?48 CXD3220R 7-3-2. adp sequence (data receive) the following provides an explanation of those adp functions relating to reception based on the diagram below. as is defined in the sbp-2 protocol, data transfer with respect to reception is also initiated by a target. therefore, data transfer is performed in the form in which the target (this link ic) reads the initiator memory using the 1394 read block command for the initiator (e.g., host computer). the following illustrates a brief overview of that sequence. 1) first, the cpu initializes the adp register according to the contents of the orb obtained. 2) the designated address and 1394 block read request command corresponding to the data_length are stored in the adptf fifo in accordance with the sbp-2 data transfer format. the stored read request packet is then sent to the 1394 link core, and the link core applies arbitration to the 1394 bus (via phy ic). 3) once a bus has been acquired, a block read request packet is transmitted to the initiator. 4) after transmission, an ack code for the read request packet and a read response packet containing data corresponding to the data_length are sent to the target from the initiator. if this ack code and response code are normal, the adp transmits the next data. in the case of an error, the status is returned as an error and an interrupt is generated to the cpu. 5) the tcode and transaction label of packets that are received by the link core are checked, and only the response packet returned to the adp is input to the adp. (stored in the adprf.) other packets are input to the arf. 6) the adp removes the 1394 header from the received response packet, and automatically stores the packet data in the adprf. 7) data stored in the adprf is output to a peripheral lsi from the transport i/f in synchronization with the sdrq. this is the role of the adp with regard to reception. adp schematic diagram adptf adp link request endec link core link response arbitration & packet transmit read response ieee1394 serial bus aaa a a a a a a aaa aaa transfer data to media sbp2 packets 1 lba 1 lba aaa 1394 header aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 1394 read response adprf aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa sbp2 read request packet 1394 read request
?49 CXD3220R 7-4. adp structure and functions 7-4-1. adp functions retry function the adp is equipped with a function that retransmits a request packet when the ack code of ack_busy_ * has returned after transmitting that request packet. the CXD3220R supports only single-phase retry. when resending a packet, the adp transmits after changing the rt code from 00 to 01 (retry_x). the time interval during retransmission is defined with the retry_interval set with the transaction timeout register. when retransmission has been retried for the number of times set for the retry_limit with the transaction timeout register, and ack_busy_ * is still returned, this is considered to be an error and a busy_timeout is set in the err code of the adp status register followed by generation of adperr interrupt. split timeout detection function the adp is equipped with a split timeout detection function that detects the timeout until a response packet returns in the case of a split transaction. after a request packet has been transmitted during a split transaction, when the response packet has not returned even after the split timeout time defined in the transaction timeout register has elapsed, a busy_timeout is set in the err code of the adp status register followed by the generation of interrupt. 7-4-2. adp structure switching between transmission and reception (fifo switching) switching between transmission and reception (fifo switching) is controlled with the direction (d) bit of the adp4 register. two types of fifo are available to the adp consisting of a 2kb fifo and 48 byte fifo. during transmission, the 2kb of fifo becomes the adptf (adp transmit fifo), and the 48 bytes of fifo is not used. during reception, the 48 byte fifo becomes the adptf, and the 2 kb fifo becomes the adprf (adp receive fifo). switching between adp transmission and reception, including this fifo switching, is controlled with the direction (d) bit of the adp5 register. the d bit is read into the adp when it is started, and the direction of transmission and reception cannot be changed until the adp is finished. parallel two-pair transmission and reception fifo other fifo such as the arf and atf are also available to the CXD3220R in parallel with adp fifo. this enables it to perform transmission and reception of normal 1394 packets other than data in parallel with data exchange performed by the adp fifo. for example, this enables the CXD3220R to accommodate the following: response when a read request has arrived at a csr or configuration rom from another node during data transfer. response to a task management orb from the initiator during data transfer.
?50 CXD3220R fifo structure and operation during adp transmission fifo_a (adptf) cpu i/f adp demux core write request packet fifo_b (not used) mux arf 39 quadlet atf 24 quadlet other than adp packet write response packet 532 quadlet 12 quadlet transport data i/f fifo structure and operation during adp reception fifo_a (adprf) cpu i/f adp demux core read request packet fifo_b (adptf) mux arf 39 quadlet atf 24 quadlet read response packet 532 quadlet 12 quadlet transport data i/f other than adp packet
?51 CXD3220R 7-5. adp setting according to the sbp-2 protocol, a normal command block orb (shown below) is fetched in the form of a block read response packet from the initiator as a result of the target sending a block read response packet to the initiator. the block read response packet containing the normal command block orb is incorporated into the arf in the format shown below. (refer to the draft of the serial bus protocol2 (sbp-2) for a detailed explanation regarding the sbp-2 protocol.) the following settings are made in the case of automatic data transfer by the adp after fetching the orb. to begin with, there are the 3 modes indicated below for automatic data transfer by the adp. mode 0) page_table_present (p) = 0, page_size = 0 when page_table_present (p) = 0, page_size = 0 are set, the adp enters a transfer mode in which there are no restrictions on address boundary. in this case, since the address of the initiator is directly indicated in the data_descriptor obtained with the normal command block orb, set the node_id & offset_hi & offset_lo of the data_descriptor to the destination id & destinationoffsethigh & destinationoffsetlow of the adp register. also set d, spd, max_payload, p, page_size and data_size. adp transfer starts when the adpgo bit of the adp control register is set to "1". the transfer speed of request packets generated with the adp is selected between either s100 for spd = 0 or s200 for spd = 1. there are no restrictions on packet size in this mode. request packets are generated corresponding to the data_size represented with max_payload, and data is transmitted and received sequentially. finally, data corresponding to the number of bytes remaining is transmitted and received with a request packet. the following page indicates a summary of packetizing with respect to this mode. 0 31302928272625242322212019181716151413121110987654321 1394header orb footer destinationid rcode tlabel next_orb tcode sourceid next_orb data_descriptor data_descriptor datalength extendedtcode data_size command_block n d spd rq_fmt (0) max_payload p page_size spd acksent priority rt basic configuration block read or clock response receive format
?52 CXD3220R mode 0 (page_table_present = 0, page_size = 0, not use page boundary) aaaaaaaa a aaaaaa a a aaaaaa a a aaaaaa a aaaaaaaa 31 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 destinationid imm tlabel (rt) (tcode) priority destinationoffsethigh destinationoffsetlow page_ size p spd d max_ payload xfer_length (data buffer length) control status max_data_length data_size start address start_address = (node_id, destination_offset hi, destination_offset lo) end address end address = start_address + data_size data transfer last packet 1st packet 2nd packet map of adp control registers adp registers p (rw, 1bit) page_size (rw, 3bits) tl (rw, 6bits) destination_id (rw, 16bits) destination_offset hi (rw, 16bits) destination_offset lo (rw, 32bits) d (rw, 1bit) sp (rw, 3bits) max_payload (rw, 4bits) xfer_length (rw, 16bits) control (rw, 32bits) status (ro, 32bits) 1394 header control by adp tcode (4bits) rt (2bits) extended_tcode (16bits) page_table_present = 0, page_size = 0 ? mode 0 = 0 transaction label direction 0 (target ? initiator, 1 (target ? initiator) speed. 0 (s100),1 (s200) data_length (16bits) 2^ (max_payload + 2) [byte] data buffer length [byte] transaction code. tcode = 0 (quadlet write), 1 (block write). 4 (quedlet read), 5 (block read) retry code. 00 (first packet), 01 (retry) this value must be zero
?53 CXD3220R mode1) page_table_present (p) = 0, page_size = non-zero, use page boundary when page_table_present (p) = 0 and page_size = non-zero are set, the adp enters a transfer mode in which there are restrictions on address boundary. in this case, since the address of the initiator is directly indicated in the data_descriptor obtained with the normal command block orb, set the node_id & offset_hi & offset_lo of the data_descriptor to the destination id & destinationoffsethigh & destinationoffsetlow of the adp register. also set d, spd, max_payload, p, page_size and data_size. adp transfer starts when the adpgo bit of the command register is set to "1". the transfer speed of request packets generated with the adp is selected between either s100 for spd = 0 or s200 for spd = 1. in this mode, there is a restriction in the form of an address boundary in which data must not be transferred across this address. the address boundary is the address where the 1394 serial bus address lower (page_size + 8) bits change from all "1" to all "0". thus, transmission and reception of data that is larger than the corresponding data_size represented with max_payload or data that crosses the address boundary are performed by dividing the packet. the following page indicates a summary of packetizing with respect to this mode.
?54 CXD3220R mode 1 (page_table_present = 0, page_size = nonzero, use page boundary) aaaaaaaaa a aaaaaaa a a aaaaaaa a a aaaaaaa a a aaaaaaa a aaaaaaaaa 31 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 destinationid imm tlabel (rt) (tcode) priority destinationoffsethigh destinationoffsetlow page_ size p spd d max_ payload xfer_length (data buffer length) control status page_length = 2?(page_size + 8) byte page boundary (a single page ends at the address at which the address lower bits (page_size + 8) change to all "1", and the next page begins when all "0".) start address start_address = (node_id, destination_offset hi, destination_offset lo) end address end address = start_address + data_size data transfer data_size 1st packet 2nd packet last packet map of adp contorl registers adp registers p (rw, 1bit) page_size (rw, 3bits) tl (rw, 6bits) destination_id (rw, 16bits) destination_offset hi (rw, 16bits) destination_offset lo (rw, 32bits) d (ro, 1bit) sp (rw, 3bits) max_payload (rw, 4bits) xfer_length (rw, 16bits) control (rw, 32bits) status (ro, 32bits) 1394 header control by adp tcode (4bits) rt (2bits) extended_tcode (16bits) restriction 1) block read or block write transaction does not cross address boundary. 2) the maximum data payload of one packet is 2^ (max_payload + 2). p = 0, page_size = nonzero ? mode 1 = nonzero, page_length = 2^ (page_size + 8) [byte] transaction label direction 0 (target ? initiator), 1 (target ? initiator) speed. 0 (s100),1 (s200) data_length (16bits) 2^ (max_payload + 2) [byte] data buffer length [byte] transaction code. tcode = 0 (quadlet write), 1 (block write). 4 (quedlet read), 5 (block read) retry code. 00 (first packet), 01 (retry) this value must be zero
?55 CXD3220R mode 2) page_table_present (p) = 1, page_size = non-zero, use page boundary [page table access] this mode is used in the case of using the page_table, which is an indirect address table of the sbp-2 protocol. when page_table_present (p) = 1 and page_size = non-zero are set, the adp enters a transfer mode using the page_table with the address boundary restriction in effect. according to the sbp-2 protocol, in the case page_table_present (p) obtained with a normal command block orb is equal to "1", since the address of the page_table is indicated in the data_descriptor, it is necessary that a block read request described in section 6.5.1.2 be issued to the address indicated in the data_descriptor, and that the contents of each page_table (see diagram below) be read. the block read response packet is returned from the initiator and stored in the arf in the format of a block read response (see section 6.5.2.3). in this mode, there is a page in which segment_offset changes from all "0" to all "1" in the form of a page boundary. when the lower (page_size + 8) bits of the 1394 serial bus address change to all "1", since this indicates the end of one page, there is a restriction in which packets cannot be generated that perform data transmission and reception to an address that goes beyond that page boundary. the number of pages (number of elements) required for data transfer are indicated in the data_size of the normal command block orb. when one page ends, packet transmission and reception is performed again starting at the serial bus address comprised of segment_base_hi, segment_base_lo and segment_offset of the next element. reference: page table (example: page_size = 4) 0 31302928272625242322212019181716151413121110987654321 segment_length segment_base_lo segment_base_hi segment_offset [data transfer using page table] the CXD3220R automatically performs page table data transfer for one element. set segment_length, segment_base_hi, segment_base_lo and segment_offset written in the page_table of each element obtained by block reading to xfer_length, segment_base_hi, segment_base_lo and segment_offset of the adp register (same register as destination offsethigh & destinationoffsetlow). set the destination_id obtained from the data_descriptor in the normal command block orb for the destination id. set d, spd, max_payload, p and page_size. adp transfer starts when the adpgo bit of the command register is set to "1". the adp sequentially transmits and receives data while generating request packets corresponding to the data_size represented with max_payload for data of the page table corresponding to one element. data corresponding to any remaining bytes is transmitted and received with a request packet. the transfer speed of request packets generated with the adp is selected between either s100 for spd = 0 or s200 for spd = 1. the following page indicates a summary of packetizing with respect to this mode.
?56 CXD3220R mode 2 (page_table_present = 1, page_size = non-zero, use page boundary) aaaaaaaa a aaaaaa a a aaaaaa a a aaaaaa a a aaaaaa a aaaaaaaa 31 0 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 destinationid imm tlabel (rt) (tcode) priority segment_base_high segment_base_low page_ size p spd d max_ payload control status segment_length offset = 0 end address = start_address + segment_length data transfer segment_offset page_length = 2?(page_size + 8) page boundary (segment_offset = all "1") 1st packet 2nd packet last packet map of adp control registers start_address = (node_id, segment_base_hi, segment_base_lo and segment_offset) xfer_length (segment_length) max_data_length adp registers p (rw, 1bit) tl (rw, 6bits) destination_id (rw, 16bits) segment_base hi (rw, 16bits) segment_base lo (rw, 32?6bits) segment_offset (rw, 32?6bits) d (rw, 1bit) sp (rw, 3bits) max_payload (rw, 4bits) page_size (rw, 3bits) xfer_length (rw, 16bits) control (rw, 32bits) status (ro, 32bits) 1394 header control by adp tcode (4bits) rt (2bits) extended_tcode (16bits) page_table_present = 1 ? mode 2 transaction label direction 0 (target ? initiator), 1 (target ? initiator) speed. 0 (s100),1 (s200) data_length (16bits) 2^ (max_payload + 2) [byte] segment_length [byte] transaction code. tcode = 0 (quadlet write), 1 (block write). 4 (quedlet read), 5 (block read) retry code. 00 (first packet), 01 (retry) this value must be zero restriction 1) block read or block write transaction does not cross address boundary. 2) the maximum data payload of one packet is 2^ (max_payload + 2).
?57 CXD3220R transaction control in the case of data transmission (d = 1) when the adp has been started, a quadlet write request packet (see section 6-5-1-2) and block write request packet (see section 6-5-1-3), containing the address and data length generated by the adp, is automatically generated and sent to the initiator. the initiator either returns ack_complete for the ack code or returns ack_pending for the ack code, after which it sends back a write response packet. in the case of ack_busy_ * , retry is performed according to the value of busy_timeout field of the register. when a response packet is not returned, a timeout is detected according to the value of the split_timeout field of the register. in the case of data reception (d = 0), a quadlet read request packet (see section 6-5-1-1), containing the address and data length generated by the adp, and block read request packet (see section 6-5-1-2) are automatically generated and sent to the initiator. the initiator returns ack_pending for the ack code and then sends back a read response packet that contains the data of the designated address. in the case of ack_busy_ * , retry is performed according to the value of busy_timeout field of the register. when a response packet is not returned, a timeout is detected according to the value of the split_timeout field of the register. the exchange for a single transaction is performed in the manner described above. data transfer of three modes is performed in accordance with sbp-2 when exchange of this transaction is continuous.
?58 CXD3220R 8. link-phy communication 8-1. link-phy interface specifications the CXD3220R and phy layer chip communicate using the four signals shown in the block diagram below: d [0:3], ctl [0:1], lreq and sclk. d [0:3] 1394 link layer CXD3220R 1394 phy layer ctl [0:1] lreq sclk the roles of the signals are as follows. d [0:3] in/out bidirectional data line. d [0:1] and d [0:3] are used for 100mbps and 200mbps, respectively. ctl [0:1] in/out bidirectional control line. lreq out request signal line from the CXD3220R to phy chip. used for bus access and phy register read/write requests. sysclk in system clock (49.12mhz) supplied from phy to the CXD3220R. the types of communication and their contents are described below. 8-2. communication there are four types of communication between phy link: request, status, transmit and receive. except for request, all commands are initialized by the phy chip. 8-2-1. bus controlling ctl [0:1] controls communication between phy and the CXD3220R. the communication contents differ depending on if phy or the CXD3220R is controlling. a) phy controlling ctl [0:1] name 00 01 10 11 idle status receive transmit description of activity bus is idle (default mode). phy is sending status information to the CXD3220R. phy is sending a packet to the CXD3220R. packet transmit authorized for the CXD3220R.
?59 CXD3220R b) CXD3220R controlling ctl [0:1] name 00 01 10 11 idle hold transmit reserved description of activity the CXD3220R completed transmit. the CXD3220R is holding the bus until transmit preparations are complete. or, the CXD3220R is trying to transmit another packet without arbitration. the CXD3220R is transmitting a packet to phy. not used. 8-2-2. request the CXD3220R always uses serial communication of lreq to send a request to phy when a request to the bus or access to the phy register is required. there are three types of request: bus request, read register request and write register request. the timing chart and contents are illustrated below. bit name 0 1 to 3 4, 5 6 start bit request type request speed stop bit description transmit start bit. always "1". indicates type of request. (refer to request type table.) indicates request communication speed. (refer to request speed table.) last transmit bit. always "0". lr3 lr2 lr1 lr0 lr (n ?2) lr (n ?1) a) bus request (length of stream: 7bit) bit name 0 1 to 3 4 to 7 8 start bit request type address stop bit description transmit start bit. always "1". indicates type of request. (refer to request type table.) address for phy register read. last transmit bit. always "0". b) read-register request (length of stream: 9bit) bit name 0 1 to 3 4 to 7 8 to 15 16 start bit request type address data stop bit description transmit start bit. always "1". indicates type of request. (refer to request type table.) address for phy register write. write data for phy register specified by address. last transmit bit. always "0". c) write-register request (length of stream: 17bit)
?60 CXD3220R request type lreq [1:3] name 000 001 010 011 100 101 110, 111 immreq isoreq prireq fairreq rdreq wrreq reserved description of activity immediate bus acquisition request. to output ack for an asynchronous packet reception, immediate bus acquisition is requested without arbitration when idle is detected. used to transmit acknowledge. isochronous request. requests execution of arbitration. used for isochronous transmit. priority request. requests execution of arbitration after subaction gap, ignoring fair protocol. used for cycle master request. fair request. requests execution of arbitration after subaction gap according to fair protocol. used for fair transmit. read request. requests return of register contents according to status transfer. write request. requests write to specified address. reserved. lreq [4:5] data rate 00 01 10 11 100mb/s 200mb/s 400mb/s reserved request speed 8-2-2-1. bus request in order to access fair or priority, waits at least one clock after the CXD3220R becomes idle to send the request. when the ctl pin is in received state (ctl [0:1] = 10), the CXD3220R interprets the request as being refused. it is reissued one clock after the next idle state. in the cycle master node, the cycle start message is sent using priority request. in order to request sending of isochronous data, the CXD3220R can issue request after receiving cycle start. phy clears the isochronous request only after the bus is acquired successfully. the CXD3220R must issue immreq while it is receiving a packet addressed to itself in order to send acknowledge. when packet reception is completed, phy immediately acquires the bus and gives authorization to the CXD3220R. however, if the header crc is erroneous, the CXD3220R immediately releases the bus. the CXD3220R can not use this authorization to send other packets. in order to ensure this operation, the CXD3220R must wait 160ns after completion of packet reception when phy uses a bus for transmitting acknowledge. then it releases the bus and continues with another request.
?61 CXD3220R consider a case in which two different nodes confirm that the packet sent is addressed to them (one is correct, one is wrong), and both nodes issue an acknowledge request before crc check. the phy of both nodes try to capture the bus immediately after packet receive is completed. in this state, a momentary collision occurs on the local bus at some point between the two phy that sent back acknowledge. this can be detected by all of the phy connected to the bus. this collision is not interpreted as bus reset, but as high impedance state. after crc check is completed, the wrong node will withdraw its request and the high impedance state is discontinued. the expected acknowledge is lost as a side effect of this, but is processed by the host protocol. 8-2-2-2. read/write request when the CXD3220R requests reading of a specific register's contents, phy transmits the register contents to the CXD3220R by status transfer. even if packets are received while phy is sending status information to the CXD3220R, phy continues processing until the register contents are transferred. for a write request, phy loads the data fields into the appropriate register as soon as transmission is completed. the CXD3220R can read/write at any time. 8-2-3. status status transmission is started by phy when it has some data to transmit to the CXD3220R. phy begins transmission by simultaneously setting ctl [0:1] to "01b" and the first 2 bits of status information to d [0: 1]. phy maintains ctl = status during status transmission. phy may finish status transmission early by setting the ctl value to some other value. this happens if a packet arrives before status transmit is completed. there must be at least one idle cycle in a continuous status transmission. phy normally sends the first four bits of status to the CXD3220R. these bits are the status flags required for the CXD3220R state machine. when transmission of a request containing a read request is completed, or when phy has information to send to the CXD3220R or the transaction layer, phy sends the first status packet to the CXD3220R. the only state in which phy sends register contents automatically to the CXD3220R is that after completion of self-identification, and physical_id register contents containing a new node address are transmitted. the transmit timing and bit definitions are illustrated below. 01 01 01 00 00 00 phy ctl [0:1] s [14, 15] s [2, 3] s [0, 1] 00 00 00 phy d [0:1]
?62 CXD3220R bit name 0 1 2 3 4 to 7 8 to 15 arbitration reset gap subaction gap bus reset state time-out address data description indicates detection of bus idle state for arbitration reset gap time. this bit is used by the CXD3220R busy/retry state machine. indicates detection of bus idle state for subaction gap time. this bit is used by the CXD3220R to detect the end of the isochronous cycle. indicates phy in bus reset state. indicates that phy state machine is stopped in a certain state for a long time. normally used for cable topology loop detection. holds the address of the register being read when phy is trying to send register contents to the CXD3220R; for example, when responding to read via the lreq pin. holds the register being sent to the CXD3220R. status bit (length of stream: 16bit) 8-2-4. transmit when the CXD3220R requests bus access via the lreq pin, phy performs arbitration for bus access. if phy wins the arbitration, transmit is asserted to the ctl pin for one sysclk cycle, and then idle is asserted to the ctl pin for one cycle to give the bus to the CXD3220R. after detecting transmitted state from phy, the CXD3220R asserts either hold or transmit to the ctl pins to take over interface control. the CXD3220R asserts hold until the data is ready, in order to keep bus initiative. during this time, phy asserts data-on state to the bus. when the packet is ready to transmit, the CXD3220R transmits the first bit of the packet, and at the same time asserts transmit to the ctl pins. after sending the last bit of the packet, the CXD3220R asserts either idle or hold to the ctl pins for one cycle. then it asserts idle for one cycle before these pins become high impedance. here, when it is necessary for the CXD3220R to send another packet without releasing the bus, hold is indicated to phy. in response to this hold, phy asserts transmit in the same way as before after waiting for the minimum required time. this function is used after acknowledge has been sent when the CXD3220R has attempted to send a unified response or when sending continuous isochronous packets for one cycle. when sending a multiple number of packets during a single bus initiative, all packets must be transmitted at the same speed. consequently, packet transmission speed is set prior to the first packet. as described above, when the CXD3220R completes sending the last packet on the newest bus initiative, it releases the bus by asserting idle to the ctl pins for 2 sysclk. when phy detects idle from the CXD3220R, it starts to assert idle to ctl for one clock.
?63 CXD3220R 00 phy ctl [0:1] 11 00 zz zz zz zz zz zz zz zz 00 00 phy d [0:3] 00 00 zz zz zz zz zz zz zz zz 00 zz CXD3220R ctl [0:1] zz zz 01 01 10 10 10 00 00 00 zz zz CXD3220R d [0:3] zz zz 00 00 d0 d1 d2 dn 00 00 zz single packet zz phy ctl [0:1] zz zz zz 00 11 00 zz 00 zz zz zz zz phy d [0:3] zz zz zz 00 00 00 zz 00 zz zz zz 10 CXD3220R ctl [0:1] 10 01 00 zz zz zz 01 zz 01 10 10 dn? CXD3220R d [0:3] dn 00 00 zz zz zz 00 zz 00 d0 d1 continued packet zz: high-impedance state, d0 to dn: packet data the timing chart for transmit is shown below.
?64 CXD3220R 8-2-5. receive when data from the bus is received at phy, it is sent from phy to the CXD3220R in the following order. phy asserts receive to the ctl pins and "all 1" to the d pin. phy indicates the packet header by placing a speed code on the d pin. next it indicates the contents of the packet, and until transmission of the last symbol in the packet is completed, it holds the ctl pins at receive. phy indicates the end of the packet by asserting idle to the ctl pins. the speed code is specified by phy-link protocol, and does not include crc calculation or other data protect. phy can identify if there is data on the bus or not without looking at the packet. this also applies if a packet is being sent at a faster speed than phy can receive. in this case, the packet is completed by asserting idle when the data-on state is completed. if phy supports a faster transmission speed than the CXD3220R, the CXD3220R detects the speed code and ignores the packet until it becomes idle again. the timing chart for reception is illustrated below. 00 phy ctl [0:1] (binary) 11 10 10 10 10 10 00 00 phy d [0:3] (hex) 00 f f sp d0 d1 dn 00 00 d [0:7] data rate 00xxxxxx 0100xxxx 10000000 100mbit/s 200mbit/s 400mbit/s speed codes for receive note) sp means speed code. notes) 1. "xx" means that "0" was transmitted, but it is ignored for receive. 2. this lsi supports 100mbits/s and 200mbits/s communications.
?65 CXD3220R package outline unit: mm sony code eiaj code jedec code package material lead treatment lead material package weight epoxy/phenol resin solder plating 42 alloy package structure detail a lqfp-100p-l01 * qfp100-p-1414-a 100pin lqfp (plastic) 16.0 0.2 * 14.0 0.1 75 51 50 26 25 1 76 0.5 0.08 0.18 ?0.03 + 0.08 (0.22) a 1.5 ?0.1 + 0.2 0.127 ?0.02 + 0.05 0.5 0.2 (15.0) 0?to 10 0.1 0.1 0.5 0.2 100 0.1 note: dimension * ?does not include mold protrusion.


▲Up To Search▲   

 
Price & Availability of CXD3220R

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