CXD1804AR CD-ROM Decoder For the availability of this product, please contact the sales office. Description The CXD1804AR is a CD-ROM decoder LSI with a built-in Fast SCSI controller. Features • Fast SCSI controller (Target mode) • Maximum transfer speed of 10MB/s (when using Fast SCSI synchronous transfer) • SCSI overhead reduced by executing multiple SCSI sequences • Supports SCAM Level 2 • Compatible with CD-ROM, CD-I and CD-ROM XA formats • Real-time error correction • Capable of handling up to twelvefold-speed playback • Multiblock auto-transfer function • Can read subcode-Q data for each byte from the sub CPU • Real-time subcode (R to W) error correction • Serial transfer of commands to CD DSP • Connectable with standard DRAM of up to 8M bits (1024K bytes) • DRAM bit width selectable for 8 bits or 16 bits 144 pin LQFP (Plastic) Applications CD-ROM drives Structure Silicon gate CMOS IC Absolute Maximum Ratings (Ta = 25°C) • Supply voltage VDD –0.5 to +7.0 V • Input voltage VI –0.5 to VDD + 0.5 V • Output voltage VO –0.5 to VDD + 0.5 V • Operating temperature Topr –20 to +75 °C • Storage temperature Tstg –55 to +150 °C Recommended Operating Conditions • Supply voltage VDD 4.5 to 5.5 (5.0 typ.) V • Operating temperature Topr –20 to +75 °C 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. –1– E96658-PS CXD1804AR Connection Example Buffer RAM 10bit 16bit XUCAS XRAS XLCAS XMWR EXCK SBIN SCOR WFCK C2PO BCLK MDAT LRCK XLAT DATO DSTB CD DSP MDB (15:0) MA (9:0) CXD1804AR CD-ROM Decoder & SCSI I/F XATN XBSY XACK XRST XSEL XMSG XCD XREQ XIO XDBP, XDB (7:0) XCS XWR XRD D (7:0) XWAT A (6:0) INT 7bit 8bit CPU data bus CPU address bus sub CPU Address Decoder –2– SCSI Bus CXD1804AR Block Diagram XCAS XLCAS XUCAS XMWR MA (0:9) 51 to 57, 59 to 61 62 Buffer Address Gen. 63 64 65 MDB (0:15) 68 to 75, 77 to 84 DMA Sequencer 3 • 5 • 8 • 10 • 11 XDB (0:7) • XDBP 15 • 18 • 20 • 23 16byte FIFO FIFO Control Priority Resolver Buffer Handshake Subcode Deinterleave & ECC EXCK 87 45 SCSI Handshake XREQ 31 XACK 24bit Transfer Byte Counter SBIN 88 SCOR 89 SCSI Phase Ctrl WFCK 90 C2PO 91 BCLK 92 CD DSP I/F Main Data Error Correction 32 XRST 28 XBSY 26 XATN 40 XSEL Arbitration Selection 43 MDAT 93 XCD 39 XMSG 47 LRCK 94 DATO 98 Microcode Core & Registers Sync Control XLAT 99 DSTB 100 Descrambler Microcode ROM CD-ROM Decoder Block SCSI Controller Block sub CPU I/F 141 142 143 144 Clock Gen. 123 to 129 131 to 138 A (0:6) D (7:0) XCS XRD INT XWR –3– 122 119 120 121 50 XWAT XTL2 CLK XTL1 XRES XIO CXD1804AR MDB5 MDB6 MDB7 VSS MDB9 MDB8 MDB10 MDB11 MDB12 MDB14 MDB13 VSS MDB15 EXCK VDD SBIN SCOR WFCK BCLK C2PO MDAT VSS LRCK NC NC DATO XLAT DSTB VDD VSS TST1 TST0 TST2 TST3 TST5 TST4 Pin Configuration 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 TST6 109 72 MDB4 TST7 110 71 MDB3 VSS 111 70 MDB2 TST8 112 69 MDB1 TST9 113 68 MDB0 TST10 114 67 VDD TST11 115 66 VSS TST12 116 65 XMWR VSS 117 64 XLCAS VDD 118 63 XUCAS XTL2 119 62 XRAS XTL1 120 61 MA9 CLK 121 60 MA8 XWAT 122 59 MA7 A0 123 58 VSS A1 124 57 MA6 A2 125 56 MA5 A3 126 55 MA4 A4 127 54 MA3 A5 128 53 MA2 A6 129 52 MA1 51 MA0 VSS 130 50 XRES D0 131 D1 132 49 VDD D2 133 48 VSS D3 134 47 XIO D4 135 46 VSS D5 136 45 XREQ D6 137 44 VSS D7 138 43 XCD VSS 139 42 VDD VDD 140 41 VSS INT 141 40 XSEL XCS 142 39 XMSG NC NC VSS VSS XRST XACK VDD VSS XBSY VSS XATN NC VSS XDBP VDD VSS VDD XDB2 VSS –4– XDB7 VSS XDB6 XDB1 NC VSS 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 34 35 36 VSS 8 VDD 7 XDB5 6 VSS 5 VSS 4 XDB4 3 VSS 2 XDB3 1 XDB0 37 VDD VSS 38 VSS XRD 144 VDD XWR 143 CXD1804AR Pin Description Pin No. Symbol I/O Logic 1 VSS — — Power VSS 2 VDD — — Power VDD 3 XDB0 I/O Negative SCSI I/F SCSI data bus bit 0 4 VSS — VSS 5 XDB1 I/O Negative SCSI I/F SCSI data bus bit 1 6 VSS — — Power VSS 7 VDD — — Power VDD 8 XDB2 I/O Negative SCSI I/F SCSI data bus bit 2 9 VSS — VSS 10 XDB3 I/O Negative SCSI I/F SCSI data bus bit 3 11 XDB4 I/O Negative SCSI I/F SCSI data bus bit 4 12 VSS — — Power VSS 13 VSS — — Power VSS 14 VDD — — Power VDD 15 XDB5 I/O Negative SCSI I/F SCSI data bus bit 5 16 VSS — — Power VSS 17 NC — — NC NC 18 XDB6 I/O Negative SCSI I/F SCSI data bus bit 6 19 VSS — VSS 20 XDB7 I/O Negative SCSI I/F SCSI data bus bit 7 21 VSS — — Power VSS 22 VDD — — Power VDD 23 XDBP I/O Negative SCSI I/F SCSI data bus parity 24 VSS — — Power VSS 25 NC — — NC NC 26 XATN I/O Negative SCSI I/F SCSI control bus XATN signal 27 VSS — VSS 28 XBSY I/O Negative SCSI I/F SCSI control bus XBSY signal 29 VSS — — Power VSS 30 VDD — — Power VDD 31 XACK I/O Negative SCSI I/F SCSI control bus XACK signal 32 XRST I/O Negative SCSI I/F SCSI control bus XRST signal 33 VSS — — Power VSS 34 VSS — — Power VSS 35 NC — — NC NC 36 NC — — NC NC — — — — Classification Power Power Power Power Description –5– CXD1804AR Pin No. Symbol I/O Logic 37 VDD — — Power VDD 38 VSS — — Power VSS 39 XMSG I/O Negative SCSI I/F SCSI control bus XMSG signal 40 XSEL I/O Negative SCSI I/F SCSI data bus XSEL signal 41 VSS — — Power VSS 42 VDD — — Power VDD 43 XCD I/O Negative SCSI I/F SCSI control bus XCD signal 44 VSS — VSS 45 XREQ I/O Negative SCSI I/F SCSI control bus XREQ signal 46 VSS — VSS 47 XIO I/O Negative SCSI I/F SCSI control bus XIO signal 48 VSS — — Power VSS 49 VDD — — Power VDD 50 XRES I 51 MA0 O BufMem I/F Address bus output bit 0 to buffer memory 52 MA1 O BufMem I/F Address bus output bit 1 to buffer memory 53 MA2 O BufMem I/F Address bus output bit 2 to buffer memory 54 MA3 O BufMem I/F Address bus output bit 3 to buffer memory 55 MA4 O BufMem I/F Address bus output bit 4 to buffer memory 56 MA5 O BufMem I/F Address bus output bit 5 to buffer memory 57 MA6 O BufMem I/F Address bus output bit 6 to buffer memory 58 VSS — Power VSS 59 MA7 O BufMem I/F Address bus output bit 7 to buffer memory 60 MA8 O BufMem I/F Address bus output bit 8 to buffer memory 61 MA9 O BufMem I/F Address bus output bit 9 to buffer memory 62 XRAS O Negative BufMem I/F Buffer memory RAS (Row Address Strobe) signal 63 XUCAS O Negative BufMem I/F Buffer memory CAS (Column Address Strobe) signal 64 XLCAS O Negative BufMem I/F Buffer memory CAS (Column Address Strobe) signal 65 XMWR O Negative BufMem I/F Data write strobe signal to buffer memory 66 VSS — — Power VSS 67 VDD — — BufMem I/F VDD 68 MDB0 I/O BufMem I/F Buffer memory data bus bit 0 69 MDB1 I/O BufMem I/F Buffer memory data bus bit 1 70 MDB2 I/O BufMem I/F Buffer memory data bus bit 2 71 MDB3 I/O BufMem I/F Buffer memory data bus bit 3 72 MDB4 I/O BufMem I/F Buffer memory data bus bit 4 73 MDB5 I/O BufMem I/F Buffer memory data bus bit 5 — — Classification Power Power Negative System I/F — Description CXD1804AR reset signal –6– CXD1804AR Pin No. Symbol I/O 74 MDB6 I/O 75 MDB7 I/O 76 VSS 77 Logic Classification Description BufMem I/F Buffer memory data bus bit 6 BufMem I/F Buffer memory data bus bit 7 — Power VSS MDB8 I/O BufMem I/F Buffer memory data bus bit 8 78 MDB9 I/O BufMem I/F Buffer memory data bus bit 9 79 MDB10 I/O BufMem I/F Buffer memory data bus bit 10 80 MDB11 I/O BufMem I/F Buffer memory data bus bit 11 81 MDB12 I/O BufMem I/F Buffer memory data bus bit 12 82 MDB13 I/O BufMem I/F Buffer memory data bus bit 13 83 MDB14 I/O BufMem I/F Buffer memory data bus bit 14 84 MDB15 I/O BufMem I/F Buffer memory data bus bit 15 85 VSS — — Power VSS 86 VDD — — Power VDD 87 EXCK O CD DSP I/F SBIN read clock (connected to the EXCK pin (Pin 65) of the CXD2500) 88 SBIN I CD DSP I/F Subcode serial signal (connected to the SBSO pin (Pin 64) of the CXD2500) 89 SCOR I CD DSP I/F Subcode sync signal (connected to the SCOR pin (Pin 63) of the CXD2500) 90 WFCK I CD DSP I/F Write frame clock (connected to the WFCK pin (Pin 62) of the CXD2500) 91 C2PO I CD DSP I/F Indicates that an error exists in C2 pointer signal MDAT. 92 BCLK I CD DSP I/F Bit clock. MDAT strobe signal. 93 MDAT I CD DSP I/F Serial data stream from CD DSP 94 LRCK I CD DSP I/F LR signal. Indicates MDAT L or R channel. 95 VSS — — Power VSS 96 NC — — NC NC 97 NC — — NC NC 98 DATO O CD DSP I/F Serial data output from sub CPU to CD DSP 99 XLAT O CD DSP I/F DATO latch signal. Latches at the rising edge. 100 DSTB O CD DSP I/F DATO transfer clock 101 VSS — — Power VSS 102 VDD — — Power VDD 103 TST0 I Test I/F Test pin 0 104 TST1 I Test I/F Test pin 1 105 TST2 I Test I/F Test pin 2 106 TST3 I Test I/F Test pin 3 107 TST4 I Test I/F Test pin 4 — –7– CXD1804AR Pin No. Symbol 108 TST5 I Test I/F Test pin 5 109 TST6 I Test I/F Test pin 6 110 TST7 I Test I/F Test pin 7 111 VSS Power VSS 112 TST8 I Test I/F Test pin 8 113 TST9 I Test I/F Test pin 9 114 TST10 I Test I/F Test pin 10 115 TST11 I Test I/F Test pin 11 116 TST12 I Test I/F Test pin 12 117 VSS — — Power VSS 118 VDD — — Power VDD 119 XTL2 O System I/F Crystal oscillation circuit output 120 XTL1 I System I/F Crystal oscillation circuit input 121 CLK O System I/F Clock output 122 XWAT O Negative sub CPU I/F Wait signal for sub CPU buffer memory access 123 A0 I sub CPU I/F CXD1804AR built-in register address bus bit 0 124 A1 I sub CPU I/F CXD1804AR built-in register address bus bit 1 125 A2 I sub CPU I/F CXD1804AR built-in register address bus bit 2 126 A3 I sub CPU I/F CXD1804AR built-in register address bus bit 3 127 A4 I sub CPU I/F CXD1804AR built-in register address bus bit 4 128 A5 I sub CPU I/F CXD1804AR built-in register address bus bit 5 129 A6 I sub CPU I/F CXD1804AR built-in register address bus bit 6 130 VSS — Power VSS 131 D0 I/O sub CPU I/F Sub CPU data bus bit 0 132 D1 I/O sub CPU I/F Sub CPU data bus bit 1 133 D2 I/O sub CPU I/F Sub CPU data bus bit 2 134 D3 I/O sub CPU I/F Sub CPU data bus bit 3 135 D4 I/O sub CPU I/F Sub CPU data bus bit 4 136 D5 I/O sub CPU I/F Sub CPU data bus bit 5 137 D6 I/O sub CPU I/F Sub CPU data bus bit 6 138 D7 I/O sub CPU I/F Sub CPU data bus bit 7 139 VSS — — Power VSS 140 VDD — — Power VDD 141 INT O Selectable sub CPU I/F Interrupt to sub CPU 142 XCS I Negative sub CPU I/F CXD1804AR chip select signal 143 XWR I Negative sub CPU I/F CXD1804AR built-in register write signal 144 XRD I Negative sub CPU I/F CXD1804AR built-in register read signal I/O — Logic — — Classification Description –8– CXD1804AR Electrical Characteristics Item (VDD = 5V ± 10%, VSS = 0V, Topr = –20 to +75°C) Symbol Conditions Min. Typ. Max. Unit Applicable pins V ∗1 V ∗1 V ∗2 V ∗2 V ∗3 V ∗3 V ∗3 V ∗4 V ∗4 V ∗4 V ∗11 V ∗11 V ∗11 µA ∗5 TTL input level pin High level input voltage VIH1 TTL input level pin Low level input voltage VIL1 CMOS input level pin High level input voltage VIH2 CMOS input level pin Low level input voltage VIL2 CMOS Schmitt input level pin High level input voltage VIH4 CMOS Schmitt input level pin Low level input voltage VIL4 CMOS Schmitt input level pin Input voltage hysteresis VIH4 – VIL4 TTL Schmitt input level pin High level input voltage VIH5 TTL Schmitt input level pin Low level input voltage VIL5 TTL Schmitt input level pin Input voltage hysteresis VIH5 – VIL4 SCSI Schmitt input level pin High level input voltage VIHS SCSI Schmitt input level pin Low level input voltage VILS SCSI Schmitt input level pin Input voltage hysteresis VIHTS – VILTS Bidirectional pin with pull-up resistor Input current IIL3 VIN = 0V High level output voltage VOH1 IOH = –2mA VDD – 0.8 V ∗6 High level output voltage VOH2 IOH = –6mA VDD – 0.8 V ∗7 SCSI high level output voltage VOHS 3.7 V ∗12 Low level output voltage VOL1 IOL = 4mA 0.4 V ∗8 SCSI low level output voltage VOLS IOL = 48mA 0.5 V ∗11 Input leakage current II1 VIN = VSS or VDD 10 µA ∗9 Oscillation cell high level input voltage VIH4 V ∗10 Oscillation cell low level input voltage VIL4 Oscillation cell logic threshold value LVTH 2.2 0.8 0.7VDD 0.3VDD 0.8VDD 0.2VDD 0.6 2.2V 0.8V 0.4 2.2V 0.8V 0.4 –90 –200 2.5 –10 –440 0.7VDD 0.3VDD V 0.5VDD Oscillation cell feedback resistance value RFB VIN = VSS or VDD Oscillation cell high level output voltage VOH3 IOH = –12mA Oscillation cell low level output voltage VOL3 IOL = 12mA –9– 250k 1M V 2.5M Ω V 0.5VDD 0.5VDD V CXD1804AR ∗1 ∗2 ∗3 ∗4 ∗5 ∗6 ∗7 ∗8 ∗9 ∗10 ∗11 ∗12 D7 to 0, MDBF to 0 MDAT, LRCK, C2PO, SBIN, SCOR, TD12 to 0 BLCK, WFCK, XRES A6 to 0, XWR, XRD, XCS D7 to 0, MDBF to 0 All output pins except XTL2, XRAS, XUCAS, XLCAS, XMWR and CLK XRAS, XUCAS, XLCAS, XMWR, CLK All output pins except XTL2 All input pins except ∗5 and XTL1 Input: XTL1, Output: XTL2 XRST, XBSY, XSEL, XATN, XMSG, XCD, XIO, XREQ, XACK, XDBP, XDB7 to 0 XREQ, XACK, XDBP and XDB7 to 0 when active negation is ON I/O Capacitance Item (VDD = VI = 0V, f = 1MHz) Symbol Min. Typ. Max. Unit Input capacitance CIN 9 pF Output capacitance COUT 11 pF I/O capacitance CI/O 11 pF – 10 – CXD1804AR AC Characteristics 1. Sub CPU Interface (Output Load = 50pF) (1) Read A6 to 0 Thar XCS Trrl XRD D7 to 0 Tsar Item Tdrd Tfrd Symbol Min. Typ. Max. Unit Address setup time (for XCS & XRD ↓) Tsar 10 ns Address hold time (for XCS & XRD ↑) Thar 10 ns Data delay time (for XCS & XRD ↓) Tdrd Data float time (for XCS & XRD ↑) Tfrd 0 35 ns 15 ns Max. Unit (2) Write A6 to 0 XCS Twwl Thwa XWR D7 to 0 Tsaw Item Tsdw Symbol Min. Thdw Typ. Address setup time (for XCS & XWR ↓) Tsaw 20 ns Address hold time (for XCS & XWR ↑) Thaw 10 ns Data setup time (for XCS & XWR ↓) Tsdw 20 ns Data hold time (for XCS & XWR ↑) Thdw 10 ns Low level XWR pulse width Twwl 30 ns – 11 – CXD1804AR 2. CD DSP Interface BCKRED = "H" Tbck Tbck BCLK DATA Thb1 Tsb1 LRCK C2PO Thb2 Tsb2 BCKRED = "L" Tbck Tbck BCLK DATA Thb1 Tsb1 LRCK C2PO Thb2 Item Symbol Min. Tsb2 Typ. Max. Unit 26 ns BCLK frequency Fbck BCLK pulse width Tbck 19 ns DATA setup time (for BCLK) Tsb1 10 ns DATA hold time (for BCLK) Thb1 10 ns LRCK, C2PO setup time (for BCLK) Tsb2 10 ns LRCK, C2PO hold time (for BCLK) Thb2 10 ns – 12 – CXD1804AR 3. DRAM Interface (1) Read iCLK Tma1 Tma0 MA9 to 0 Trc Trasl Trash XRAS Tcasl Tcash XCAS XMWR Tmds "H" Tmdh MDB7 to 0 Item Symbol Min. Random read/write cycle time Trc 5Tw Address delay time (for XTL2 ↑) Tma0 13 24 45 ns Address delay time (for XTL2 ↓) Tma1 11 22 41 ns XRAS ↓ delay time (for XTL2 ↑) Trasl 6 12 23 ns XRAS ↑ delay time (for XTL2 ↑) Trash 6 11 20 ns XCAS ↓ delay time (for XTL2 ↑) Tcasl 7 14 25 ns XCAS ↑ delay time (for XTL2 ↑) Tcash 6 12 22 ns Data setup time (for XCAS ↑) Tmds 2 4 6 ns Data hold time (for XCAS ↓) Tmdh 0 – 13 – Typ. Max. Unit ns ns CXD1804AR (2) Write iCLK Tma1 Tma0 MA9 to 0 Trc Trasl Trash XRAS Tcasl Tcash XCAS Tmwrl Tmwrh XMWR Tmdl MDB7 to 0 Item Symbol Min. Random read/write cycle time Trc 5Tw Address delay time (for XTL2 ↑) Tma0 13 24 45 ns Address delay time (for XTL2 ↓) Tma1 11 22 41 ns XRAS ↓ delay time (for XTL2 ↑) Trasl 6 12 23 ns XRAS ↑ delay time (for XTL2 ↑) Trash 6 11 20 ns XCAS ↓ delay time (for XTL2 ↑) Tcasl 7 14 25 ns XCAS ↑ delay time (for XTL2 ↑) Tcash 6 12 22 ns XMWR ↓ delay time (for XTL2 ↑) Tmwrl 7 14 25 ns XMWR ↑ delay time (for XTL2 ↑) Tmwrh 6 11 21 ns Data setup time (for XTL2 ↑) Tmdws 14 28 51 ns Data hold time (for XTL2 ↑) Tmdwh 7 14 26 ns – 14 – Typ. Max. Unit ns CXD1804AR (3) Refresh (RAS only refresh) iCLK Tma0 MA9 to 0 Trasl Trash XRAS XCAS "H" XMWR "H" Item Symbol Min. Random read/write cycle time Trc 5Tw Address delay time (for XTL2 ↑) Tma0 12 24 43 ns XRAS ↓ delay time (for XTL2 ↑) Tras1 6 12 23 ns XRAS ↑ delay time (for XTL2 ↑) Trash 6 11 20 ns – 15 – Typ. Max. Unit ns CXD1804AR 4. SCSI Interface (1) SCSI asynchronous transfer timing When receiving: Initiator → Target XREQ Taanrad XACK XDB Taads Taaarnd Tardh When transmitting: Target → Initiator XREQ Taaarnd XACK Taanrad XDB Tards Taadh Item Symbol Min. Typ. Max. Unit XDB setup time (for XACK ↓) Taads 15 ns XDB hold time (for XREQ ↑) Tardh 0 ns XDB setup time (for XREQ ↓) Tards 30 ns XDB hold time (for XREQ ↓) Taadh 60 ns XREQ rise delay time (for XACK ↓) Taaarnd 30 70 ns XREQ fall time (for XACK ↑) Taanrad 30 85 ns – 16 – CXD1804AR (2) SCSI synchronous transfer timing When receiving: Initiator → Target XACK XDB Tnads Tnadh When transmitting: Target → Initiator Tnrap Tnrnp XREQ XDB Tnads Tnadh Item Symbol Min. Typ. Max. Unit XDB setup time (for XACK ↓) Tnads 15 ns XDB hold time (for XACK ↓) Tnadh 10 ns XDB setup time (for XREQ ↓) Tnrds 80 ns XDB hold time (for XREQ ↓) Tnrdh 105 ns XREQ assert time Tnrap XREQ negate time Tnrnp 110 90 – 17 – ns ns CXD1804AR (3) Fast SCSI synchronous transfer timing When receiving: Initiator → Target XACK XDB Tfads Tfadh When transmitting: Target → Initiator Tfrap Tfrnp XREQ XDB Tfrds Tfrdh Item Symbol Min. Typ. Max. Unit XDB setup time (for XACK ↓) Tfads 15 ns XDB hold time (for XACK ↓) Tfadh 10 ns XDB setup time (for XREQ ↓) Tfrds 55 ns XDB hold time (for XREQ ↓) Tfrdh 55 ns XREQ assert time Tfrap XREQ negate time Tfrnp 60 40 – 18 – ns ns CXD1804AR 5. XTL1 and XTL2 Pins (1) When using self-excited oscillation Item Symbol Oscillation frequency Min. Typ. Fmax Max. Unit 40.0 MHz (2) When inputting a pulse to the XTL1 pin Tw Twhx Twlx Vihx VDD/2 Vilx Item Symbol Min. Typ. Max. Unit High level pulse width Twhx 10 ns Low level pulse width Twhx 10 ns Pulse cycle Tw 25 ns – 19 – CXD1804AR Contents [1] Description of Registers ........................................................................................................................... 21 1-1. Description of Decoder Block Registers ............................................................................................... 21 1-2. Description of SCSI2 Controller Block Registers.................................................................................. 46 1-3. Common Registers ............................................................................................................................... 60 [2] Description of SCSI Controller Block Commands ................................................................................. 68 2-1. Precautions when Executing Commands ............................................................................................. 69 2-2. Category 00 Commands....................................................................................................................... 69 2-3. Category 01 Commands....................................................................................................................... 74 2-4. Category 10 Commands....................................................................................................................... 76 2-5. Category 11 Commands....................................................................................................................... 79 [3] Appendix A................................................................................................................................................. 84 3-1. List of CD-ROM Decoder Block Registers............................................................................................ 84 3-2. List of SCSI Controller Block Registers ................................................................................................ 90 3-3. List of Common Registers .................................................................................................................... 94 3-4. Register Reset Conditions .................................................................................................................... 96 [4] Appendix B............................................................................................................................................... 102 4-1. Summary of SCSI Controller Block Commands ................................................................................. 102 – 20 – CXD1804AR [1] Description of Registers The CXD1804AR's register address area is allotted as shown in the table below. Address Description 00h to 4Fh 0xx xxxx 100 xxxx CD-ROM decoder block 50h to 6Fh 101 xxxx 110 xxxx SCSI2 interface block 70h to 7Fh 111 xxxx CD-ROM decoder/SCSI2 interface common block 1-1. Description of Decoder Block Registers 1-1-1. 00h (1) RAWMIN (raw minute) register (read) RAWMIN (raw minute) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 00h (R) Reg. REWMIN The Header Minute byte for the sector being sent from the CD DSP while DECINT is active can be read from this register. A difference of two sectors exists between the RAWxxx and BFxxx registers during the write-only and real-time correction modes. (2) CONFIG0 (configuration 0) register (write) CONFIG0 (configuration 0) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 00h (W) CINT POL RAM SIZE1 RAM SIZE0 RAM8 BITW RAM2 CAS EXCK SEL CLK SEL1 CLK SEL0 CONFIG0 bit 7: bits 6, 5: CINTPOL (sub CPU interrupt polarity) High: The INT pin becomes active high. When the register is inactive, it goes low. Low: The INT pin becomes active low. When the register is inactive, it goes to high impedance. RAMSIZE1, 0 (DRAM size 1, 0) Set these bits according to the total size of the DRAM connected to this IC. RAMSIZE1 RAMSIZE0 bit 4: DRAM total size "L" "L" 1M bits "L" "H" 2M bits "H" "L" 4M bits "H" "H" 8M bits RAM8BITW (DRAM 8-bit wide) This bit is set according to the bit width of the DRAM data bus to be connected. High: Set this bit high when the DRAM to be connected has the 8-bit width. Low: Set this bit low when the DRAM to be connected has the 16-bit width. (Set low when two 8-bit width DRAMs are connected in parallel.) – 21 – CXD1804AR bit 3: bit 2: bits 1, 0: RAM2CAS (DRAM 2 CAS) When the DRAM bus width is 16 bits, set this bit according to the number of CAS and WE signals. When the DRAM bus width is 8 bits, this bit has no meaning. High: Set this bit high when the IC is connected to a DRAM with 2 CAS signals and 1 WE signal. Low: Set this bit low when the IC is connected to a DRAM with 1 CAS signal and 2 WE signals. EXCKSEL (EXCK select) This bit determines the frequency of the EXCK clock that is used to get the subcode from the CD DSP. This bit is set by the sub CPU on the basis of the playback speed and the clock frequency on the XTL1 pin. (The maximum frequency for EXCK is 1MHz.) High: The EXCK frequency is 1/48 the frequency of the XTL1 pin. Set this bit high when the XTL1 frequency is greater than 32MHz. Low: The EXCK frequency is 1/32 the frequency of the XTL1 pin. Set this bit low when the XTL1 frequency is less than 32MHz. CLKSEL1, 0 (CLK select 1, 0) These bits determine the clock frequency output from the CLK pin. CLKSEL1 CLKSEL0 Clock frequency "L" "L" Fixed to high "L" "H" 1/2 of XTL1 "H" "L" Same frequency as XTL1 "H" "H" RESERVED 1-1-2. 01h (1) RAWSEC (raw second) register (read) RAWSEC (raw second) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 00h (R) Reg. RAWSEC The Header Second byte for the sector being sent from the CD DSP while DECINT is active can be read from this register. (2) CONFIG1 (configuration 1) register (write) CONFIG1 (configuration 1) register Adr. 00h (W) bit7 SW OPEN bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. SYC NGC2 SYC NGC1 SYC NGC0 HWKR QDIS "L" SBC ECC1 SBC ECC0 CONFIG1 bit 7: SWOPEN (sync window open) High: The Sync mark detection window opens. In this case, the IC's internal Sync protection circuit is disabled. Low: The Sync mark detection window is controlled by the IC's internal Sync protection circuit. bits 6 to 4: SYCNGC2 to 0 (sync NG count 2 to 0) The Sync mark detection window opens once the number of Sync marks specified by these bits is inserted. Setting a value of 1h or less for these bits is prohibited. (After a reset, these bits are set to 2h.) – 22 – CXD1804AR bit 3 bit 2: bits 1, 0: HWKRQDIS (host DMA weak request disable) High: (For the send system command passed through a buffer) When the FIFO does not have eight empty bytes or more, the DMA does not start to the FIFO from the buffer. (For the receive system command passed through a buffer) When the data of eight bytes or more are written (or the last data is written) in the FIFO, the DMA starts to the buffer from the FIFO. Low: (For the send system command passed through a buffer) When the FIFO is not filled with data, the DMA starts to the FIFO from the buffer. (For the receive system command passed through a buffer) The DMA starts to the buffer from the FIFO immediately after the data are written in the FIFO. The number of times of the DMA execution for the host is reduced by setting this bit high. (Because the page mode is always used.) RESERVED Normally set low. SBCECC1, 0 (subcode ECC 1, 0) These two bits specify the error correction method when decoding the subcode. SBECC1 SBECC0 Subcode error correction "X" "L" Error correction not performed. "L" "H" Single error correction performed. "H" "H" Double error correction performed. 1-1-3. 02h (1) RAWBLK (raw block) register (read) RAWBLK (raw block) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 02h (R) Reg. RAWBLK The Header Block byte for the sector being sent from the CD DSP while DECINT is active can be read from this register. (2) DSPIF (DSP interface) register (write) DSPIF (DSP interface) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 02h (W) C2PO L1st LCH LOW BCK RED BCKL MD1 BCKL MD0 LSB 1st "L" BFSH DFSL DSPIF This register controls the connection mode with the CD DSP. After the IC is reset, the sub CPU sets this register according to the CD DSP to be connected. bit 7: C2PL1ST (C2PO lower byte first) High: When two bytes of data are input, C2PO inputs the lower byte first followed by the upper byte. Low: When two bytes of data are input, C2PO inputs the upper byte first followed by the lower byte. Here, "upper byte" means the upper 8 bits including MSB from the CD DSP and "lower byte" means the lower 8 bits including LSB from the CD DSP. For example, the Header minute byte is the lower byte and the second byte, the upper byte. – 23 – CXD1804AR bit 6: bit 5: bits 4, 3: bit 2: bit 1: bit 0 LCHLOW (Lch low) High: When LRCK is low, determined to be the left channel data. Low: When LRCK is high, determined to be the right channel data. BCKRED (BLCK rising edge) High: Data is strobed at the rising edge of BCLK. Low: Data is strobed at the falling edge of BCLK. BCKMD1, 0 (BCLK mode 1, 0) These bits are set according to the number of clocks output for BCLK during 1/2 LCLK cycle by the CD digital signal processing LSI (CD DSP). BCKMD1 BCKMD0 "L" "L" 16BCLKs/WCLK "L" "H" 24BCLKs/WCLK "H" "X" 32BCLKs/WCLK LSB1ST (LSB first) High: Connected with the CD DSP which outputs data with LSB first. Low: Connected with the CD DSP which outputs data with MSB first. RESERVED Normally set low. Any change to the bits in this register must be made in the decoder disable status. (After the IC is reset, the address is 28h.) BFSHDFSL (buffering subheader flag select) High: The Sub Headers written two times are compared and, if they do not match, the result reports an error to bits 3 to 0 of BFHDRFLG. Low: When the C2PO of the Sub Headers written two times are both high, that reports an error to the bits 3 to 0 of BFHDRFLG. 1-1-4. 03h (1) RAWMD (raw mode) register (read) RAWMD (raw mode) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 03h (R) Reg. RAWMD The Header Mode byte for the sector being sent from the CD DSP while DECINT is active can be read from this register. (2) RFINTVL (refresh interval) register (write) RFINTVL (refresh interval) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 03h (W) b7 b6 b5 b4 b3 b2 b1 b0 RFINTVL This register determines the refresh interval. The refresh interval is RFINTVL × 4 × TW. Here, TW represents the XTL1 clock frequency. Note that this IC performs RAS only refresh. – 24 – CXD1804AR 1-1-5. 04h (1) BFMIN (buffer minute) register (read) BFMIN (buffer minute) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 04h (R) Reg. BFMIN During the execution of a write-only or real-time error correction command and after execution of a repeat correction command, the Header Minute byte of the current sector can be read from this register. This register is invalid when the decoder is disabled or a monitor-only command is being executed. (2) DSPCTL (DSP control) register (write) DSPCTL (DSP control) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 04h (W) DSTB SL1 DSTB SL0 DIS XLAT XFR BYT1 XFR BYT0 "L" SBAI TMSL FAST EXCK DSPCTL bits 7, 6: bit 5: bits 4, 3: bits 2: DSTBSL1, 0 These bits determine the frequency of the DSTB and XLAT clocks used for passing data (DATO) to the CD DSP. The sub CPU sets these bits according to the frequency of the clock on the XTL1 pin. (The maximum frequency for DSTB is 1MHz.) DSTBDL1 DSTBDL0 Frequency 0 0 1/24 of XTL1 0 1 1/32 of XTL1 1 0 1/48 of XTL1 1 1 1/64 of XTL1 DISXLAT (disable XLAT output) High: After the contents of the DSPCMD register are transferred to the DSP, a latch pulse is not output from the XLAT pin. In this case, the sub CPU uses DSPCMDLT (bit 0 of the CHPCTL0 register) to output a latch pulse from the XLAT pin at the appropriate time. Low: After the contents of the DSPCMD register are transferred to the DSP, a latch pulse is output from the XLAT pin. XFRBYT1, 0 (transfer command byte length 1,0) These bits determine the number of bytes in the command data (DSPCMD register) to be transferred to the CD DSP. The relationship between the settings and the number of transferred bytes is shown in the following table. XFRBYT1 XFRBYT0 Number of transferred bytes "L" "L" Prohibited "L" "H" 1 "H" "L" 2 "H" "H" 3 RESERVED Normally set low. – 25 – CXD1804AR bit 1 SBAITMSL (subcode buffering area increment timing select) High: The internal subcode buffering area is incremented when the first pack of data is retrieved and de-interleaving is performed. Low: The internal subcode buffering are is incremented when the subcode Sync mark is detected and inserted. FASTEXCK (fast EXCK) High: The EXCK frequency is 1/8 the frequency of the XTL1 pin. Low: The EXCK frequency depends on the settings of EXCKSEL (CONFIG0 bit 2) bit 0 1-1-6. 05h (1) BFSEC (buffer second) register (read) BFSEC (buffer second) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 05h (R) Reg. BFSEC During the execution of a write-only or real-time error correction command and after execution of a repeat correction command, the Header Second byte of the current sector can be read from this register. This register is invalid when the decoder is disabled or a monitor-only command is being executed. (2) DSPCMD (DSP command) register (write) DSPCMD (DSP command) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 05h (W) b7 b6 b5 b4 b3 b2 b1 b0 DSPCMD The data to be serially transferred to the CD DSP is written in this register. This register is a three-byte LIFO (last-in, first-out) register. 1-1-7. 06h (1) BFHDRBLK (buffer header block) register (read) BFHDRBLK (buffer block) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 06h (R) Reg. BFHDRBLK During the execution of a write-only or real-time error correction command and after execution of a repeat correction command, the Header Block byte of the current sector can be read from this register. This register is invalid when the decoder is disabled or a monitor-only command is being executed. 1-1-8. 07h (1) BFMD (buffer mode) register (read) BFMD (buffer mode) register Adr. bit7 bit6 bit5 bit4 bit3 07h (R) bit2 bit1 bit0 Reg. BFMD During the execution of a write-only or real-time error correction command and after execution of a repeat correction command, the Header Mode byte of the current sector can be read from this register. This register is invalid when the decoder is disabled or a monitor-only command is being executed. – 26 – CXD1804AR 1-1-9. 08h (1) BFFILE (buffer file) register (read) BFFILE (buffer file) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 08h (R) Reg. BFFILE During the execution of a write-only or real-time error correction command and after execution of a repeat correction command, the Sub Header File byte of the current sector can be read from this register. This register is invalid when the decoder is disabled or a monitor-only command is being executed. 1-1-10. 09h (1) BFCHAN (buffer channel) register (read) BFCHAN (buffer channel) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 09h (R) Reg. BFCHAN During the execution of a write-only or real-time error correction command and after execution of a repeat correction command, the Sub Header Channel byte of the current sector can be read from this register. This register is invalid when the decoder is disabled or a monitor-only command is being executed. 1-1-11. 0Ah (1) BFSUBM (buffer sub mode) register (read) BFSUBM (buffer sub mode) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0Ah (R) Reg. BFSUBM During the execution of a write-only or real-time error correction command and after execution of a repeat correction command, the Sub Header Sub Mode byte of the current sector can be read from this register. This register is invalid when the decoder is disabled or a monitor-only command is being executed. 1-1-12. 0Bh (1) BFDTYP (buffer data type) register (read) BFDTYP (buffer data type) register Adr. bit7 bit6 bit5 bit4 bit3 0Bh (R) bit2 bit1 bit0 Reg. BFDTYP During the execution of a write-only or real-time error correction command and after execution of a repeat correction command, the Sub Header Data Type byte of the current sector can be read from this register. This register is invalid when the decoder is disabled or a monitor-only command is being executed. – 27 – CXD1804AR 1-1-13. 0Ch (1) RAWHDRFLG (raw header flag) register (read) RAWHDRFLG (raw header flag) register Adr. bit7 bit6 bit5 bit4 0Ch (R) MIN SEC BLO CK MODE bit3 bit2 bit1 bit0 Reg. CDR DTEN RAWHDR bit0 Reg. CDR DTEN CDRMODE This register indicates the C2PO value for the RAWHDR register. bit 7 Minute bit 6 Second bit 5 Block bit 4 Mode bit 3 to 1 RESERVED bit 0 CD-R Mode Detect Enable (2) CDRMOD (CD-R mode) register (write) CDRMOD (CD-R mode) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 0Ch (W) bit 0 CDRDTEN (CD-R mode detect enable) High: The CDRINT status results when the decoder is operating in the monitor-only, write-only, real-time correction or asynchronous correction mode if either of the conditions below is met. (1) Bits 7 to 5 of the Raw Mode byte are not "000". (2) The error flag of the Raw Mode byte is not established. (Values after processing by setting of MDBYTCTL (DECCTL0 bit 2)) Low: The CD-R Mode byte is not detected. 1-1-14. 0Dh (1) BFHDRFLG (buffer header flag) register (read) BFHDRFLG (buffer header flag) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 0Dh (R) MIN SEC BLO CK MODE FILE CHAN SUB MODE DATA TYPE HDRFLG – 28 – CXD1804AR This register shows the error status of each byte in the BFHDR and BFSHDR registers. High means an error. bit7 Minute bit6 Second bit5 Block bit4 Mode bit3 File bit2 Channel bit1 Submode bit0 Data Type 1-1-15. 0Eh (1) DECSTS0 (decoder status 0) register (read) DECSTS0 (decoder status 0) register Adr. bit7 bit6 bit5 bit4 bit3 0Eh (R) bit 7: bit 6: bit 5: bit 4: bit 3: bit 2: bit 1: bit 0: bit2 bit1 bit0 Reg. DECSTS0 SHRTSCT (short sector) Indicates that the Sync mark interval was less than 2351 bytes since the previous DECINT. This sector does not remain in the buffer memory. NOSYNC Indicates that the Sync mark was inserted because one was not detected in the prescribed position for the current sector. CORINH (correction inhibit) This is high if the current sector Mode and Form could not be determined when the AUTODIST bit of the DECCTL register is set high. ECC or EDC is not executed in this sector. The CORINH bit is invalid when AUTODIST is set low. It is high in any of the conditions below when the AUTODIST bit is set high. (1) When an error was found in the Mode byte. (2) When the Mode byte is a value other than 01h or 02h. (3) When the Mode byte is 02h and the C2 pointer is high in the Submode byte. ERINBLK (erasure in block) When the decoder is operating in the monitor-only, write-only or real-time mode which prohibits erasure correction, this indicates that at least a 1-byte error flag (C2PO) has been raised in the data excluding the Sync mark from the current sector CD DSP. CORDONE (correction done) Indicates that there is an error corrected byte in the current sector. EDCNG Indicates that an error was found in the current sector through an EDC check. ECCNG Indicates that an uncorrectable error was found somewhere between the Header byte and the Parity byte in the current sector. (Bit 1 = don't care in the Mode2, Form2 sectors.) TGTNTMET (target not met) Indicates that the current sector address and the target address in the TGTMNT, TGTSEC, and TGTBLK registers do not match. The error pointer is not referenced in this instance. – 29 – CXD1804AR 1-1-16. 0Fh (1) DECSTS1 (decoder status 1) register (read) DECSTS1 (decoder status 1) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0Fh (R) Reg. DECSTS1 bits 7 to 3: RESERVED bit 2: EDCALL0 (EDC all 0) This is high when there are no error flags in all the 4 EDC parity bytes of the current sector and their values are all 00h. bit 1: CMODE (correction mode) bit 0: CFORM (correction form) These bits indicate the Mode and Form of the current sector the decoder has discriminated to correct errors when the decoder is operating in the real-time correction or repeat correction mode. CFORM CMODE "X" "L" MODE1 "L" "H" MODE2, FORM1 "H" "H" MODE2, FORM2 1-1-17. 10h, 11h (1) LSTARA-H, L (last area-high, low) register (read/write) LSTARA-H, L (last area-high, low) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 10h (R/W) 11h (R/W) b7 b6 b5 b4 b3 b2 b1 bit0 Reg. b8 LSTARA-H b0 LSTARA-L This register specifies the last order area. Set bits 7 to 1 of the LSTARA-H register low when writing in this register. 1-1-18. 12h, 13h (1) LHADR-H, L (last HADR-high, low) register (read/write) LHADR-H, L (last HADR-high, low) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 12h (R/W) 13h (R/W) b7 b6 b5 b4 b3 b2 b1 bit0 Reg. b8 LHADR-H b0 LHADR-L When host automatic transfer mode is disabled, this register specifies the upper limit for HADRC (the upper 9 bits); for the subcode buffering command, this register specifies the upper limit for the address (upper 9 bits). The lower 11 bits are 7FFh. Set bits 7 to 1 of the LHADR-H register low when writing in this register. – 30 – CXD1804AR 1-1-19. 14h (1) XFRFMT0 (transfer format 0) register (read/write) XFRFMT0 (transfer format 0) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 14h (R/W) 1024 XFR 512 XFR SYNC HEAD ER SBHE ADER USER DATA PARI TY AUTO XFR XFRFMT0 The transfer format for automatic data transfer is determined by this register. Before starting to transfer each sector, this IC reads the value of the SCTINF register written in the buffer memory. The buffer memory data is transferred to the host according to the read values and those in the XFRFMT1 and 0 registers. The Mode/Form of bits 3 to 1 depends on the values of bits 2 and 1 in the SCTINF register. Regarding Mode2 in the Yellow Book, don't care the Form2 (bit 2) of the SCTINF register. Set bits 3 to 1 of the XFRFMT0 register high to transfer 2336 bytes of user data. bit 7: 1024XFR When this bit is set high, the user data (2048 bytes) is divided into 1024-byte blocks for transmission. In this case, set bits 6 to 1 in the XFRFMT0 register and bits 7 to 0 in the XFRFMT1 register low. In other words, the Sync mark, Header, Sub Header, and Parity bytes, as well as the block error flag, byte error flag, and subcode cannot be sent to the host. This transfer mode is not supported for Mode2/Form2 sectors. bit 6: 512XFR (512 bytes transfer mode) When this bit is set high, the user data (2048 bytes) is divided into 512-byte blocks for transmission. In this case, set bit 7 and bits 5 to 1 in the XFRFMT0 register and bits 7 to 0 in the XFRFMT1 register low. In other words, the Sync mark, Header, Sub Header, and Parity bytes, as well as the block error flag, byte error flag, and subcode cannot be sent to the host. This transfer mode is not supported for Mode2/Form2 sectors. bit 5: SYNC High: Sync marks are transferred to the host. Low: Sync marks are not transferred to the host. bit 4: HEADER High: The four Header bytes are transferred to the host. Low: The four Header bytes are not transferred to the host. bit 3: SBHEADER High: Mode1: This bit has no meaning. Mode2: The eight Sub Header bytes are transferred to the host. Low: The bytes indicated above are not transferred to the host. bit 2: USERDATA (user data) High: Mode1 and Mode2/Form1: User data (2048 bytes) is transferred to the host. Mode2/Form2: User data (2324 bytes) is transferred to the host. Low: The bytes indicated above are not transferred to the host. bit 1: PARITY High: Mode1: The EDC, ECC parity bytes and the eight 00h bytes, for a total of 288 bytes, are transferred to the host. Mode2/Form1: The 280 EDC and ECC parity bytes are transferred to the host. Mode2/Form2: The four reserved bytes (at the end of the sector) are transferred to the host. Low: The bytes indicated above are not transferred to the host. bit 0: AUTOXFR Set this bit high when operating in automatic transfer mode. Set this bit low when operating in manual transfer mode. For CD-DA data, set 3Fh in this register when operating in automatic transfer mode. – 31 – CXD1804AR 1-1-20. 15h (1) XFRFMT1 (transfer format 1) register (read/write) XFRFMT1 (transfer format 1) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 15h (R/W) ENBL KEFL BLKE FLSL ENBY TFBT BYTE FLSL ENSB CBT ALL SBC SBCE STS ZA SQEF XFRFMT1 bit 7: bit 6: bit 5: bit 4: bit 3: bit 2: ENBLKEFL (enable block error flag) High: The block error flag (1 byte) is transferred to the host. Low: The byte indicated above is not transferred to the host. BLKEFLSL (block error flag select) This bit is valid only when ENBLKEFL is high. High: The value (one byte) written in the BLKESTS register by the sub CPU is transferred to the host as the block error flag. Low: The OR value of each bit in the byte error flag is transferred to the host as the block error flag. ENBYTFBT (enable byte error flag buffering & transfer) If this bit is set high, the operations described below are performed. If this bit is set low, the operations described below are not performed. (1) The byte error flag is buffered during execution of a write-only, real-time error correction, and CD-DA command. (2) When host automatic transfer mode is enabled (the AUTOXFR bit (bit 0) of the XFRFMT0 register is high), the byte error flag is transferred to the host. The ENBYTFBT and BYTEFLSL bits are valid only when the USERDATA bit (bit 2) of the XFRFMT0 register is high. BYTEFLSL (byte error flag select) This bit is valid only when ENBYTFBT is high. When this bit is set high, the value of BYTERSTS (the byte error status register, described later) is written in the byte error flag area of the buffer memory. Setting the BLKEFLSL bit low and the BYTEFLSL bit high at the same time is prohibited. If this bit is set low, the value of C2PO from the CD DSP is written in the byte error flag area. ENSBCBT (enable subcode buffering & transfer) If this bit is set high, the operations described below are performed. If this bit is set low, the operations described below are not performed. (1) All subcodes or subcode-Q is buffered while the decoder executes CD-DA commands. (2) When host automatic transfer mode is enabled (the AUTOXFR bit (bit 0) of the XFRFMT0 register is high), all subcodes or subcode-Q is transferred to the host. Note that buffering the CD-ROM data and the subcodes or subcode-Q at the same time is not supported. ALLSBC (all subcode/subcode-Q) This determines whether to buffer and transfer all subcodes or subcode-Q to the host when ENSBCBT is high. High: All subcodes Low: Subcode-Q – 32 – CXD1804AR bit 1: bit 0: SBCESTS (subcode error status) This bit is valid only when ENSBCBT is high. High: The value (one byte) written in the SBCESTS register by the sub CPU is transferred to the host. Low: The byte indicated above is not transferred to the host. ZASQEF (zero after subcode-Q error flag) This bit is valid only when ENSBCBT and SBCESTS are both high. (This bit is valid only when subcode-Q and the subcode error flag are transferred to the host.) High: Five 00h bytes in addition to the subcode-Q error flag are transferred to the host. Low: Five 00h bytes are not added to the subcode-Q error flag. 1-1-21. 16h (1) DECCTL0 (decoder control 0) register (read/write) DECCTL0 (decoder control 0) register Adr. bit7 bit6 bit5 16h (R/W) AUTO DIST MODE SEL FORM SEL bit 7: bit 6: bit 5: bit4 bit3 bit2 bit1 bit0 Reg. ENFM 2EDC MDBY TCTL EN DLA ATDL RNEW DECCTL0 AUTODIST (auto distinction) High: Errors are corrected according to the Mode byte and the Form bit read from the drive. Low: Errors are corrected according to the MODESEL and FORMSEL bits (bits 6 and 5). MODESEL (mode select) FORMSEL (form select) When AUTODIST is low, the sector is corrected in the Mode or Form indicated in the table below. MODESEL FORMSEL bit 4: bit 3: bit 2: "L" "L" MODE1 "H" "L" MODE2, FORM1 "H" "H" MODE2, FORM2 RESERVED Always set low. ENFM2EDC (enable Form2 EDC check) High: EDC check for Form2 is enabled.Low: EDC check for Form2 is disabled. The EDCNG bit of the DECSTS0 register goes low. MDBYTCTL (mode byte control) High: Even if there are data other than "0" in the upper six bits of the Mode byte in the Header, an error does not result. Set this bit high when playing back discs such as CD-ROM. Low: If the upper six bits of the Mode byte in the Header are not "000000", an error results. – 33 – CXD1804AR bit 1: bit 0: ENDLA (enable drive last area (address)) High: DLAR (Drive Last Area) is enabled. While the decoder is executing a write-only command, real-time error correction command, or CD-DA command, if buffering of the buffer memory area specified by DLAR is completed, the DRVOVRN (drive overrun) status results. Bufferwrite of subsequent sectors is then interrupted. Also, while the decoder is executing a subcode buffering command, if data is written in the buffer memory address specified by SLADR, the DRVOVRN (Drive Overrun) status results. Buffer-write of subsequent sectors is then interrupted. Low: DLAR (Drive Last Area) and SLADR are disabled when this is set low. ATDLRNEW (auto DLARA renewal) High: When the data transfer to the host is completed for one sector, DLARA is renewed in the written area of the sector. Low: DLARA is renewed by the sub CPU. 1-1-22. 17h (1) DECCTL1 (decoder control 1) register (read/write) DECCTL1 (decoder control 1) register Adr. bit7 17h (R/W) ENSB QRD bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. DEC CMD2 DEC CMD1 DEC CMD0 NTCR CT2 NTCR CT1 NTCR CT0 DECCTL1 bit 7: ENSBQRD (enable subcode-Q read) The subcode is fetched from the DSP and the subcode-Q CRC check is performed. The sub CPU can read the subcode-Q from the SUBQ register. Subcode decoding (de-interleave, error correction) is performed. bit 6: RESERVED Normally set low. bits 5 to 3: DECCMD2 to 0 (decoder commands 2 to 0) DECCMD2 DECCMD1 DECCMD0 Decoder command "L" "L" "L" DECODER Disable "L" "L" "H" Monitor-only "L" "H" "L" Write-only "L" "H" "H" Real-time correction "H" "L" "L" Asynchronous correction "H" "L" "H" Subcode buffering "H" "H" "H" CD-DA bits 2 to 0: NTCRCT2 to 0 (number of times of correction) This determines the number of times where error correction is performed when operating in asynchronous correction mode. (1 to 4 times) – 34 – CXD1804AR 1-1-23. 18h (1) XFRSTS (data transfer status) register (read) XFRSTS (data transfer status) register Adr. bit7 bit6 bit5 18h (R) REV# 2 REV# 1 REV# 0 bit4 bit3 bit2 CMDO BUSY bit1 bit0 Reg. CBFW RRDY CBFR DRDY XFRSTS bits 7 to 5: REV#2 to 0 (revision number bits 2 to 0) "000" is read out. This can be used to recognize the version. bit 4: CMDOBUSY (command output busy) This bit goes high if DSPCMDXFR is set. Once the transfer of contents of the DSPCMD register to the CD DSP is completed, this bit goes low. bit 1: CBFWRRDY (CPU buffer write ready) The sub CPU can write in the CPUBWDT register when this bit is high. bit 0: CBFRDRDY (sub CPU buffer read ready) The sub CPU can read the CPUBRDT register when this bit is high. (2) CHPCTL0 (chip control 0) register (write) CHPCTL0 (chip control 0) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 18h (W) CHIP RST TGT MET INC TGT RPCO RTRG "L" CLDS PCMD DSPC MDXF DSPC MDLT CHPCTL0 bit 7: bit 6: bit 5: CHIPRST (chip reset) This IC is reset when this bit is set high. TGTMET (target met) (1) During execution of a write-only or real-time error correction command, if the target sector is found, the sub CPU sets TGTMET high. (2) TGTMET is sampled for 3/4 sectors (depends on the playback speed) after the decoder interrupt. Accordingly, if the target sector is found, the sub CPU must set TGTMET high within this interval after DECINT. (3) Once TGTMET is set high, it remains high internally until the decoder is disabled. (4) If TGTMET is sampled and found to be low during execution of a write-only or real-time error correction command: • The main data and subcode buffering areas are not renewed. • Main data error correction is not performed. INCTGT (increment target register) If this bit is set high, the target registers (TGTMIN, TGTSEC, and TGTBLK) are incremented. The target registers use BCD code. TGTMIN, TGTSEC, and TGTBLK are connected in cascading fashion and are incremented as shown below. (1) The TGTBLK register is always incremented by this bit. When the TGTBLK register is incremented after reaching "74", it returns to "0". (2) The TGTSEC register is incremented when the TGTBLK register is "74" and this bit goes high. When the TGTSEC register is incremented after reaching "59", it returns to "0". (3) The TGTMIN register is incremented when the TGTBLK register is "74", the TGTSEC register is "59", and this bit goes high. When the TGTMIN register is incremented after reaching "99", it returns to "0". – 35 – CXD1804AR bit 4: bit 3: bit 2: bit 1: bit 0: RPCORTRG (repeat correction trigger) If this bit is set high while the decoder is disabled, the CD-ROM sector error correction begins. The sector that is corrected is specified by the BFARA# register. RESERVED Always set low. CLDSPCMD (clear DSP data register) Setting this bit high clears the DSPCMD register. DSPCMDXF (DSP command transfer) Setting this bit high starts serial transfer of the contents of the DSPCMD register to the CD DSP. DSPCMDLT (DSP command latch) Setting this bit high outputs a pulse from the XLAT pin. 1-1-24. 19h (1) CPUBRDT (CPU buffer read data) register (read) CPUBRDT (CPU buffer read data) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 19h (R) Reg. CPUBRDT The sub CPU reads the Data In the buffer memory through this register. (2) CPUBWDT (CPU buffer write data) register (write) CPUBWDT (CPU buffer write data) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 19h (W) b7 b6 b5 b4 b3 b2 b1 b0 CPUBWDT The sub CPU writes the data to be written in the buffer memory in this register. 1-1-25. 1Ah (1) SCTINF (sector information) register (read/write) SCTINF (sector information) register Adr. 1Ah (R/W) bit7 bit6 bit5 bit4 bit3 SUBQ FMSL bit2 bit1 bit0 Reg. MODE2 FORM2 XFR SCT SCTINF While DECINT is active, the current sector information is written in this register. When making transfers to the host automatically, be sure to set the information in this register each time DECINT is active. The value in this register is written in the last address in the buffer memory area. bit 7: SUBQFMSL (subcode-Q format select) High: When ENSBCBT is high and ALLSBC is low, the decoder does not write the subcode error flag or 00h after subcode-Q in the buffer. When transferring the subcode error flag and 00h after subcode-Q address data to the host, the sub CPU must write Data In the above address before setting the SCTINF register. Set this bit high only when ENSBCBT is high and ALLSBC is low is prohibited. Low: When ENSBCBT is high and ALLSBC is low, the decoder writes the subcode error flag and 00h after subcode-Q in the buffer. – 36 – CXD1804AR bits 6 to 3: RESERVED Always set low. bit 2: Mode2 High: This sector is a Mode2 sector. Low: This sector is a Mode1 or CD-DA sector. bit 1: Form2 This bit is valid only when the Mode2 bit is high. High: This sector is a Form2 sector. Low: This sector is a Form1 sector. This bit can either be high or low in the Mode2 for the Yellow Book. bit 0: MODE2 FORM2 "L" "L" MODE1 "L" "H" RESERVED "H" "L" MODE2/FORM1 "H" "H" MODE2/FORM2 XFRSCT (transfer sector) High: The Data In this sector is transferred to the host. Low: The Data In this sector is not transferred to the host. In this case, bits 2 and 1 have no meaning. 1-1-26. 1Bh (1) SBCSTS (subcode status) register (read) SBCSTS (subcode status) register Adr. 1Bh (R) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. SBCSTS During execution of a CD-DA command or a subcode buffering command, this register indicates the error status of the subcode written to the buffer. The Data In this register is valid from DECINT to DECINT. bit 7: SBCOVRN (subcode overrun) If the ENSBCBT bit (bit 5) of the XFRFMT1 register is set high, if subcode buffering to the area specified by DLARA is completed while the decoder is executing a CD-DA command or a subcode buffering command, the SBCOVRN status results. There are no stipulations regarding the time relationship between the subcode and CD-ROM data Sync marks. Accordingly, a time difference exists between the occurrence of DRVOVRN and SBCOVRN. bit 6: OVERFLOW Indicates that the SBCSTS FIFO has overflowed due to multiple subcode short sync. When overflow occurs, subcode buffering is stopped. Subcodes are not buffered in subsequent sectors obtained by decoder interrupt. bit 5: BFNTVAL (buffer not valid) Indicates that valid data is not written in the buffer due to a short subcode sector. bit 4: NOSYNC Indicates that the Sync mark was inserted because a subcode Sync mark was not detected in the prescribed position. bits 3 to 1: SBCERR3 to 1 (subcode pack error 3 to 1) Indicates that an uncorrectable error was found in that pack as the result of subcode error correction. These bits are valid only when the ALLSBC bit (bit 4) of the XFRFMT1 register is high. – 37 – CXD1804AR bit 0: SBCERR0 (subcode pack error 0)/SUBQERR0 (subcode-Q error 0) When ALLSBC is high, this bit is the PACK0 error status. When ALLSBC is low, an error was detected in the subcode-Q as the result of the CRC check. (2) BLKESTS (block error status) register (write) BLKESTS (block error status) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 1Bh (W) b7 b6 b5 b4 b3 b2 b1 b0 BLKESTS The data to be transferred to the host as the block error status byte is written in this register. Set this register before writing the SCTINF register. 1-1-27. 1Ch (1) SBQSTS (subcode-Q status) register (read) SBQSTS (subcode-Q status) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 1Ch (R) Reg. SBQSTS This register indicates the error status of the subcode-Q fetched from the CD DSP. Except for bit 7, the Data In this register is valid from SBCSYNC to SBCSYNC. bit 7: SBQERR (subcode-Q error) This bit is the status which is normally to be written in the SBCSTS register. This bit is valid for the same period as the SBCSTS register. This bit indicates that an error was detected in the subcodeQ as a result of the CRC check. The sub CPU should read this bit before reading the SBCSTS register. When ALLSBC is high, bit 0 of SBCESTS becomes SBCERR0. Therefore, the subcode-Q error information is obtained from this bit. When ALLSBC is low, SUBQERR0 and SBQERR are the same. Accordingly, there is no need to read this bit. bits 6 to 3: RESERVED bit 2: SHTSBCS (short subcode sector) Indicates that the subcode Sync mark interval since the previous SBCSYNC interrupt was less than 98 WFCK. bit 1: NOSYNC (no subcode Sync) Indicates that since a subcode Sync mark could not be detected at the prescribed position, a Sync mark was inserted. bit 0: SUBQERR (subcode-Q error) An error was detected in the subcode-Q as a result of the CRC check. (2) SBCESTS (subcode error status) register (write) SBCESTS (subcode error status) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 1Ch (W) b7 b6 b5 b4 b3 b2 b1 b0 SBCESTS The data to be transferred to the host as the subcode error status byte is written in this register. Set this register before writing in the SCTINF register. – 38 – CXD1804AR 1-1-28. 1Dh (1) INCBLKS (increment blocks) register (read/write) INCBLKS (increment blocks) register Adr. bit7 bit6 bit5 bit4 bit3 1Dh (R/W) bit2 bit1 bit0 Reg. INCB LKS2 INCB LKS1 INCB LKS0 INCBLKS bits 7 to 3: RESERVED Always set low. bits 2 to 0: INCBLKS2 to 0 This register specifies the increment value (+1 to 4) of the BFBLKC (buffer block count) register. Setting "0" or a value of "5" or greater is prohibited. After a reset, the increment value is set to "1". 1-1-29. 1Eh (1) SBQDT (subcode-Q data) register (read) SBQDT (subcode-Q data) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 1Eh (R) Reg. SBQDT The subcode-Q value can be read by reading this register ten times. The subcode-Q that is read is the data immediately prior to the SBCSYNC interrupt. (2) BYTERSTS (byte error status) register (write) BYTERSTS (byte error status) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 1Eh (W) b7 b6 b5 b4 b3 b2 b1 b0 BYTERSTS When ENBYTFBT and ENBYTEFG in the XFRFMT1 register are both high, the data to be transferred to the host as the byte error status byte is written in this register. Set this register before writing in the SCTINF register. 1-1-30. 1Fh (1) CHPCTL1 (chip control 1) register (read/write) CHPCTL1 (chip control 1) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 PACK MODE 15h (R/W) bits 7 to 3, 1, 0: RESERVED Always set low. – 39 – bit1 bit0 Reg. CHPCTL1 CXD1804AR bit 2: PACKMODE (pack mode) High: The four packs of data starting from the five packs before the subcode sync signal are written in the buffer as one group of data. In the illustration below, H to K are treated as one group. Low: The four packs of data before the subcode sync signal are written in the buffer as one group of data. In the illustration below, I to L are treated as one group. SCOR PACK from DSP 0 1 2 3 4 5 6 de-interleaved PACK 7 8 9 10 11 12 13 14 15 16 17 18 19 H I J K L M N O P Q R S T PACKMODE H: Pack using 0 to 7 I: Pack using 1 to 8 J: Pack using 2 to 9 1-1-31. 20h, 21h (1) BFARA#-H, L (buffering area number-high, low) (read/write) BFARA#-H, L (buffering area number-high, low) Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 20h (R/W) 21h (R/W) b7 b6 b5 b4 b3 b2 b1 bit0 Reg. b8 BFARA#-H b0 BFARA#-L The area is read where the data from the CD DSP is buffered. This register indicates the buffering area when executing a write-only, real-time error correction, or CD-DA command. Before executing one of these commands, the sub CPU specifies the area where buffering is to start initially. When the buffering of a sector is completed, this register is incremented. When executing a subcode buffering command, buffering starts from address 0. 1-1-32. 22h, 23h (1) CSCTARA-H, L (current sector area-high, low) register (read) CSCTARA-H, L (current sector area-high, low) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 22h (R) 23h (R) b7 b6 b5 b4 b3 b2 b1 This register indicates the area number where the current sector is being written. – 40 – bit0 Reg. b8 CSCTARA-H b0 CSCTARA-L CXD1804AR 1-1-33. 24h, 25h (1) DLARA-H, L (drive last area-high, low) register (read/write) DLARA-H, L (drive last area-high, low) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 24h (R/W) 25h (R/W) b7 b6 b5 b4 b3 b2 b1 bit0 Reg. b8 DLARA-H b0 DLARA-L This register specifies the last buffering area while the decoder is executing a write-only, real-time error correction, or CD-DA command. If the ENDLA bit (bit 1) of the DECCTL0 register is set high and the data from the drive (CD DSP) is written in the area specified by DLARA while the decoder is executing one of the above commands, subsequent buffering is prohibited. 1-1-34. 27h (1) TGTMIN (target minute) register (read/write) TGTMIN (target minute) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 27h (R/W) b7 b6 b5 b4 b3 b2 b1 b0 TGTMNT 0 to 99 (BCD) 1-1-35. 28h (1) TGTSEC (target second) register (read/write) TGTSEC (target second) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 28h (R/W) b7 b6 b5 b4 b3 b2 b1 b0 TGTSEC 0 to 59 (BCD) 1-1-36. 29h (1) TGTBLK (target block) register (read/write) TGTBLK (target block) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 29h (R/W) b7 b6 b5 b4 b3 b2 b1 b0 TGTBLK 0 to 74 (BCD) Set the target sector address in these three registers when executing a monitor-only, write-only, or real-time error correction command. This address is compared with the current sector address, and if they do not match, TGTNTMT (target not met) status (bit 0 of the DECSTS0 register) is established. – 41 – CXD1804AR 1-1-37. 2B to 2Dh (1) XFRCNT-H, M, L (transfer block counter-high, middle, low) register (read/write) XFRCNT-H, M, L (transfer block counter-high, middle, low) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 2Bh (R/W) b23 b22 b21 b20 b19 b18 b17 b16 XFRCNT-H 2Ch (R/W) b15 b14 b13 b12 b11 b10 b9 b8 XFRCNT-M 2Dh (R/W) b7 b6 b5 b4 b3 b2 b1 b0 XFRCNT-L This is a 24-bit register that shows the number of blocks remaining to be transferred. Before the start of the transfer the sub CPU sets the total number of blocks to be transferred in this register. This register is decremented as the transfer of each block is completed. 1-1-38. 2Eh, 2Fh (1) XFRARA-L, H (transfer area-low, high) register (read/write) XFRARA-L, H (transfer area-low, high) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 2Eh (R/W) 2Fh (R/W) b7 b6 b5 b4 b3 b2 b1 bit0 Reg. b8 XFRARA-H b0 XFRARA-L During an automatic transfer, this register specifies the initial area from which the transfer is to start. This register is incremented after a block is transferred. Note that bits 7 to 1 of the XFRCNT-H register should normally be set low. 1-1-39. 31h (1) XFRPOS (first transfer position) register (read/write) XFRPOS (transfer position) register Adr. bit7 bit6 bit5 bit4 bit3 31h (R/W) bit2 bit1 bit0 Reg. XFR POS1 XFR POS0 XFRPOS bits 7 to 2: RESERVED Always set low. bits 1, 0: XFRPOS1, 0 These bits specify the initial block position from which transfer is to start when in 512- or 1024-byte transfer mode (automatic transfer mode). In 1024-byte transfer mode, XFRPOS1 is invalid. This register is incremented after a block is transferred. This register is invalid in manual transfer mode and automatic transfer modes other than 512- and 1024-byte mode. The sub CPU can read the values of XFRARA, XFRPOS, BFBLKC and XFRCNT at any time. However, because the reads by the sub CPU are not synchronized with the variation of BFBLKC, note that there is a possibility of an error of ±1 between the value that is read and the actual value. – 42 – CXD1804AR 1-1-40. 33h to 35h (1) HXFRC-H, M, L (host transfer byte counter-high, middle, low) register (read/write) HXFRC-H, M, L (host transfer byte counter-high, middle, low) register Adr. bit7 bit6 bit5 bit4 33h (R/W) bit3 bit2 bit1 bit0 Reg. b19 b18 b17 b16 HXFRC-H 34h (R/W) b15 b14 b13 b12 b11 b10 b9 b8 HXFRC-M 35h (R/W) b7 b6 b5 b4 b3 b2 b1 b0 HXFRC-L In manual transfer mode, these registers set the number of bytes to be transferred. (20 bits) The number of bytes remaining to be transferred can also be read from this register. Note that bits 7 to 4 of HXFRC-H should normally be set low. Note) Send Data (A1h), Send Status (A5h) and Send Message (A7h), which were passed via the buffer, should not be executed if HADRC-H, M, L are odd addresses and HXFRC-H, M, L are 3 bytes for setting conditions. 1-1-41. 37h to 39h (1) HADRC-H, M, L (host address counter-high, middle, low) register (read/write) HADRC-H, M, L (host address counter-high, middle, low) register Adr. bit7 bit6 bit5 bit4 37h (R/W) bit3 bit2 bit1 bit0 Reg. b19 b18 b17 b16 HADRC-H 38h (R/W) b15 b14 b13 b12 b11 b10 b9 b8 HADRC-M 39h (R/W) b7 b6 b5 b4 b3 b2 b1 b0 HADRC-L In manual transfer mode, these registers set the head address from which the transfer begins. Note that bits 7 to 4 of HADRC-H should normally be set low. Note) Send Data (A1h), Send Status (A5h) and Send Message (A7h), which were passed via the buffer, should not be executed if HADRC-H, M, L are odd addresses and HXFRC-H, M, L are 3 bytes for setting conditions. 1-1-42. 3Bh to 3Dh (1) SLADR-H, M, L (subcode last address-high, middle, low) register (read/write) SLADR-H, M, L (subcode last address-high, middle, low) register Adr. bit7 bit6 bit5 bit4 3Bh (R/W) bit3 bit2 bit1 bit0 Reg. b19 b18 b17 b16 SLADR-H 3Ch (R/W) b15 b14 b13 b12 b11 b10 b9 b8 SLADR-M 3Dh (R/W) b7 b6 b5 b4 b3 b2 b1 b0 SLADR-L These registers specify the last buffering address for subcode buffering commands. If the ENDLA bit (bit 1) of the DECCTL0 register is set high and the data is written in the buffer address specified by SLADR while the decoder is executing a subcode buffering command, subsequent buffering is prohibited. Be sure to set these registers in the order of H → M → L. Note that bits 7 to 4 of SLADR-H should normally be set low. – 43 – CXD1804AR 1-1-43. 3Fh to 41h (1) CWADRC-H, M, L (CPU write address counter-high, middle, low) register (read/write) CWADRC-H, M, L (CPU write address counter-high, middle, low) register Adr. bit7 bit6 bit5 bit4 3Fh (R/W) bit3 bit2 bit1 bit0 Reg. b19 b18 b17 b16 CWADRC-H 40h (R/W) b15 b14 b13 b12 b11 b10 b9 b8 CWADRC-M 41h (R/W) b7 b6 b5 b4 b3 b2 b1 b0 CWADRC-L The sub CPU sets this address when writing Data In the buffer memory. The register is incremented when data is written in the buffer memory. The sub CPU should set these registers in the order of CWADRC-H, M, L. Note that bits 7 to 4 of CWADRC-H should normally be set low. 1-1-44. 43h to 45h (1) CRADRC-H, M, L (CPU read address counter-high, middle, low) register (read/write) CRADRC-H, M, L (CPU read address counter-high, middle, low) register Adr. bit7 bit6 bit5 bit4 43h (R/W) bit3 bit2 bit1 bit0 Reg. b19 b18 b17 b16 CRADRC-H 44h (R/W) b15 b14 b13 b12 b11 b10 b9 b8 CRADRC-M 45h (R/W) b7 b6 b5 b4 b3 b2 b1 b0 CRADRC-L The sub CPU sets this address when reading data from the buffer memory. The register is incremented when data is read from the buffer memory. The sub CPU should set these registers in the order of CRADRC-H, M, L. Note that bits 7 to 4 of CRADRC-H should normally be set low. 1-1-45. 46h, 47h (1) BFBLKC-H, L (buffer block count-high, low) register (read/write) BFBLKC-H, L (buffer block count-high, low) register Adr. bit7 bit6 bit5 bit4 bit3 46h (R/W) 47h (R/W) b7 b6 b5 b4 b3 bit2 bit1 bit0 Reg. b10 b9 b8 BFBLKC-H b2 b1 b0 BFBLKC-L This register is a 10-bit counter that indicates the number of blocks in the buffer that can be transferred. Before activating the decoder, the sub CPU sets the number of blocks that can be transferred. Once the number of transferable blocks is reached (once the buffer is written with XFRSCT (bit 0) of the SCTINF register high), the value of BFBLKC is incremented (+1 to 4). The increment value is specified by the INCBLKS register. When the transfer of one block is completed, this register is decremented (–1). Note that bits 7 to 3 of BFBLKC-H should normally be set low. – 44 – CXD1804AR 1-1-46. 48h, 49h (1) BFFLRT-H, L (buffer full ratio-high, low) register (read/write) BFFLRT-H, L (buffer full ratio-high, low) register Adr. bit7 bit6 bit5 bit4 bit3 48h (R/W) 49h (R/W) b7 b6 b5 b4 b3 bit2 bit1 bit0 Reg. b10 b9 b8 BFFLRT-H b2 b1 b0 BFFLRT-L These registers indicate the buffer full ratio. Note that bits 7 to 3 of BFFLRT-H should normally be set low. 1-1-47. 4Ah, 4Bh (1) TIMER-H, L (timer-high, low) register (read/write) TIMER-H, L (timer-high, low) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 4Ah (R/W) b15 b14 b13 b12 b11 b10 b9 b8 TIMER-H 4Bh (R/W) b7 b6 b5 b4 b3 b2 b1 b0 TIMER-L These are the timer settings. The sub CPU should set these registers in the order of TIMER-H, L. After a value is set in TIMER-L, a timer interrupt occurs when the time specified by (TIMER-H, L) ∗TIMRRSL passes. 1-1-48. 4Ch (1) TMRRSL (timer resolution) register (read/write) TMRRSL (timer resolution) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 4Ch (R/W) b7 b6 b5 b4 b3 b2 b1 b0 TMRRSL This register determines the timer resolution. Assuming the XTL1 clock cycle to be Tw, the timer resolution is TIMRRSL × 16 × Tw. [Example] Setting a resolution of 100µs (1) XTL1 = 40MHz (Tw = 25ns) 100 × 1000 / (16 × 25) = 250 (FAh) Set FAh in this register. The resolution becomes 100µs. (2) XTL1 = 33.8688 MHz (Tw = 29.5ns) 100 × 1000 / (16 × 29.5) = 211.68 Set D3 or D4h in this register. The resolution becomes 96.7µs or 100.2µs, respectively. 1-1-49. 4Eh, 4Fh (1) STARTARA-H, L (start area-high, low) register (read) STARTARA-H, L (start area-high, low) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 4Eh (R) 4Fh (R) b7 b6 b5 b4 b3 b2 b1 bit0 Reg. b8 STARTARA-H b0 STARTARA-L These registers indicate the area from which transfer starts when executing stream processing. – 45 – CXD1804AR 1-2. Description of SCSI2 Controller Block Registers 1-2-1. 50h (1) SCSTS (SCSI module status) register (read) SCSTS (SCSI module status) register Adr. 50h (R) bit7 bit6 MON RST ∗ MON DBP ∗ bit5 bit4 bit3 bit2 TRAG MODE TBC ZERO 0 1 bit1 bit0 CMDI NPRG 0 Reg. SCSTS Initial value This register monitors the various states of the CXD1804AR/SCSI2 controller block. bit 7: MONRST (monitor RST) Monitors the SCSI bus XRST signal (positive logic). bit 6: MONDBP (monitor DBP) Monitors the SCSI bus XDBP signal (positive logic). bit 3: TARGMODE (target mode indicator) bit 2: bit 0: This bit goes high when the CXD1804AR/SCSI2 controller block is in the target status. TBCZERO (transfer byte counter zero) This bit goes high while the value of the transfer byte counter (set by the SCSXFRC register) used to transfer data between the sub CPU and the SCSI is "000". Note) Even if this value is high, FIFO is not necessarily empty. CMDINPRG (SCSI module command in progress) This bit goes high while the CXD1804AR/SCSI2 controller block is executing the command written in the SCCMD register (50h). (2) SCCMD (SCSI module command) command register (write) SCCMD (SCSI module command) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 50h (W) CAT1 CAT0 B05 B04 B03 B02 B01 B00 SCCMD Commands to the CXD1804AR/SCSI2 controller block are written in this register. bits 7 and 6: CAT1 and 0 (SCSI module command category code 1, 0) CAT1 CAT0 0 0 1 1 0 1 0 1 Mode Commands valid in all states Commands valid in the Disconnect status Commands valid in the target status Stream-related commands bits 5 to 0: B05 to B00 (SCSI module command code B05 to B00) See the chapter on commands for the details of each command. – 46 – CXD1804AR 1-2-2. 51h (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 51h (R) Reg. Reserved Initial value 51h (W) Reserved Currently not used. 1-2-3. 52h (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 52h (R) Reg. Reserved Initial value 52h (W) Reserved Currently not used. 1-2-4. 53h (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 53h (R) Reg. Reserved Initial value 53h (W) Reserved Currently not used. 1-2-5. 54h (1) SCSCBMON (SCSI control bus monitor) register (read) SCSCBMON (SCSI control bus monitor) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 54h (R) MON BSY MON SEL MON MSG MON CD MON IO MON REQ MON ACK MON ATN SCSCBMON Initial value The SCSI control signals on the SCSI bus can be monitored with this register. All signals are positive logic. – 47 – CXD1804AR bit 7: bit 6: bit 5: bit 4: bit 3: bit 2: bit 1: bit 0: MONBSY (monitor BSY) Monitors the XBSY signal on the SCSI bus. MONSEL (monitor SEL) Monitors the XSEL signal on the SCSI bus. MONMSG (monitor MSG) Monitors the XMSG signal on the SCSI bus. MONCD (monitor CD) Monitors the XCD signal on the SCSI bus. MONIO (monitor IO) Monitors the XIO signal on the SCSI bus. MONREQ (monitor REQ) Monitors the XREQ signal on the SCSI bus. MONACK (monitor ACK) Monitors the XACK signal on the SCSI bus. MONATN (monitor ATN) Monitors the XATN signal on the SCSI bus. (2) Reserved (write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 54h (W) Reg. Reserved Currently not used. 1-2-6. 55h (1) SCFIFSTS (SCSI FIFO status) register (read) SCFIFSTS (SCSI FIFO status) register Adr. bit7 55h (R) bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. FIFE MPTY FIF FULL FIF CNT3 FIF CNT2 FIF CNT1 FIF CNT0 SCFIFSTS 1 0 0 0 0 0 Initial value bit1 bit0 The status of the built-in FIFO can be read from this register. bit 7: FIFEMPTY (FIFO empty) When this bit is high, the FIFO is empty. bit 4: FIFFULL (FIFO full) When this bit is high, the FIFO is full. bits 3 to 0: FIFCNT3 to 0 (FIFO count 3 to 0) These bits indicate the used capacity of the built-in FIFO. (2) Reserved (write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 55h (W) bit2 Reg. Reserved Currently not used. – 48 – CXD1804AR 1-2-7. 56h (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 56h (R) Reg. Reserved Initial value 56h (W) Reserved Currently not used. 1-2-8. 57h (1) SCDATA (SCSI data) register (read/write) SCDATA (SCSI data) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 57h (R/W) b07 b06 b05 b04 b03 b02 b01 b00 SCDATA Initial value This register is used to transfer data between the sub CPU bus and the SCSI bus. After the assert SCSI data command has been executed, the value written in this register is output directly to the SCSI data bus until the deassert SCSI data command is executed. In addition, the SCSI data bus can be monitored by reading this register. 1-2-9. 58h (1) SCSXFRC (SCSI sub CPU transfer counter) register (read/write) Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 58h (R/W) "L" "L" "L" b4 b3 b2 b1 b0 SCSXFRC 0 0 0 0 0 Initial value This register sets the number of bytes to be transferred by a phase unit of transfer command from the SCSI to the sub CPU. The maximum number of bytes which can be sent from the SCSI to the sub CPU with a single transfer is 16 bytes. – 49 – CXD1804AR 1-2-10. 59h (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 59h (R) Reg. Reserved Initial value 59h (W) Reserved Currently not used. 1-2-11. 5Ah (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 5Ah (R) Reg. Reserved Initial value 5Ah (W) Reserved Currently not used. 1-2-12. 5Bh (1) SCSYNCTL (SCSI synchronous transfer control) register (read/write) SCSYNCTL (SCSI synchronous transfer control) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 5Bh (R/W) SYXF RPD3 SYXF RPD2 SYXF RPD1 SYXF RPD0 SYXF ROF3 SYXF ROF2 SYXF ROF1 SYXF ROF0 SCSYNCTL 0 0 0 0 0 0 0 0 Initial value This register sets the transfer cycle and transfer offset value during SCSI synchronous transfer. "00h" must be written in this register when performing asynchronous transfer. The value written in this register can be read by reading this register. bits 7 to 4: SYXFRPD3 to 0 (synchronous transfer period 3 to 0) These bits set the transfer cycle for synchronous transfer. The actual synchronous transfer cycle is obtained from the formulas below. When FASTSCSI = 1 (bit 7 of SCCONF1 = 1) Transfer cycle [ns] = 1 fCLK [MHz] × 1000 × (4 + SYXFRPDn) When FASTSCSI = 0 (bit 7 of SCCONF1 = 0) Transfer cycle [ns] = 1 fCLK [MHz] × 1000 × (8 + SYXFRPDn) In addition, the transfer rate at this time is obtained from the formula below. Transfer rate [MHz] = 1 × 1000 Transfer cycle [ns] – 50 – CXD1804AR bits 3 to 0: SYXFROF3 to 0 (synchronous transfer offset 3 to 0) These bits set the REQ and ACK offset values during synchronous transfer. When SYXFROF3 to 0 = 0: Asynchronous transfer mode results. When SYXFROF3 to 0 = 1 to 15: Synchronous transfer is executed at the offset value set in SYXFROF3 to 0. 1-2-13. 5Ch (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 5Ch (R) Reg. Reserved Initial value 5Ch (W) Reserved Currently not used. 1-2-14. 5Dh (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 5Dh (R) Reg. Reserved Initial value 5Dh (W) Reserved Currently not used. 1-2-15. 5Eh (1) SCSCBCTL (SCSI control bus control) register (read/write) SCSCBCTL (SCSI control bus control) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 5Eh (R/W) CTL BSY CTL SEL CTL MSG CTL CD CTL IO CTL REQ SCSCBCTL 0 0 0 0 0 0 Initial value After the assert SCSI control command has been executed, the SCSI control signals on the SCSI data bus can be driven directly through this register until the deassert SCSI control command is executed. When each bit is set high, the corresponding SCSI control signal is also set high. When this register is read, the value written in this register is read. Note) Reading this register is not the same as reading the SCSI bus status. The SCSI bus status can be known by reading the SCSCBMON register (54h). – 51 – CXD1804AR bit 7: CTLBSY (control BSY) Controls XBSY signal assert/deassert. CTLSEL (control SEL) Controls XSEL signal assert/deassert. CTLMSG (control MSG) Controls XMSG signal assert/deassert. CTLCD (control CD) Controls XCD signal assert/deassert. CTLIO (control IO) Controls XIO signal assert/deassert. CTLREQ (control REQ) Controls XREQ signal assert/deassert. bit 6: bit 5: bit 4: bit 3: bit 2: 1-2-16. 5Fh (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 5Fh (R) Reg. Reserved Initial value 5Fh (W) Reserved Currently not used. 1-2-17. 60h (1) SCCONF0 (SCSI module configuration 0) register (read/write) SCCONF0 (SCSI module configuration 0) register Adr. bit7 bit6 60h (R/W) bit5 bit4 bit3 bit2 bit1 bit0 Reg. CDBS IZDF ANEG DATA ANEG RQAK SCCONFIG 0 0 0 Initial value This register sets the various parameters for the CXD1804AR/SCSI2 controller block. bit 5: CDBSIZDF (CDB size definition) Manipulating this bit changes the definition of the SCCDBSIZ register. When CDBSIZDF is low Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 69h (R/W) GP7 B1 GP7 B0 GP6 B1 GP6 B0 GP4 B1 GP4 B0 GP3 B1 GP3 B0 SCCDBSIZ 0 0 0 0 0 0 0 0 Initial value When CDBSIZDF is high Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 69h (R/W) GP7 B1 GP7 B0 GP6D B1 GP6D B0 GP6C B1 GP6C B0 GP43 B1 GP43 B0 SCCDBSIZ 0 0 0 0 0 0 0 0 Initial value – 52 – CXD1804AR bit 4: bit 3: ANEGDATA (active negation on XDB (bits 7 to 0) and XDBP) If this bit is set high, the XDB (bits 7 to 0) and XDBP pins of the SCSI bus are set to active negation. ANEGRQAK (active negation on XREQ and XACK) If this bit is set high, the XREQ and XACK pins of the SCSI bus are set to active negation. 1-2-18: 61h (1) SCCONF1 (SCSI module configuration 1) register (read/write) SCCONF1 (SCSI module configuration 1) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 61h (R/W) FAST SCSI HSXF RSPE HSXF RAT SPAR ENB RSLR TLM3 RSLR TLM2 RSLR TLM1 RSLR TLM0 SCMODE 0 0 0 0 0 0 0 0 Initial value This register specifies the SCSI operation mode for the CXD1804AR/SCSI2 controller block. bit 7: FASTSCSI (Fast SCSI mode) If this bit is set, synchronous transfer is performed at Fast SCSI timing. bit 6: HSXFRSPE (halt SCSI transfer upon SCSI parity error) This bit determines the operation when a parity error occurs on the SCSI bus during SCSI transfer. If this bit is set high, transfer is stopped and the command is interrupted. If this bit is set low, transfer continues. SCSIPERR interrupt is generated in either case. This bit has no meaning when bit 4 (SPARENB) of the SCCONF1 register is low. bit 5: HSXFRAT (halt SCSI transfer upon SCSI attention condition) This bit determines the operation when the ATN condition is established on the SCSI bus during SCSI transfer. If this bit is set high, transfer is stopped and the command is interrupted. If this bit is set low, transfer continues. ATNCOND interrupt is generated in either case. bit 4: SPARENB (SCSI parity enable) If this bit is set high, parity detection is performed on the SCSI bus. While this bit is high, parity detection is performed during the selection and information transfer phases. If a parity error is detected while executing selection phase, the CXD1804AR/SCSI2 controller block does not respond to the selection. bits 3 to 0: RSLRTLM (3 to 0) (Reselection retry limit) These bits set the number of times for which Reselection is retried until the CXD1804AR/SCSI2 controller block informs the sub CPU that Reselection failed when executing Reselection. The number of retries can be set from 1 to 15 times including the number of Arbitration failures. If "0" is set, the number of retries is infinite. 1-2-19. 62h (1) SCCONF2 (SCSI module configuration 2) register (read/write) SCCONF2 (SCSI module configuration 2) register Adr. bit7 bit6 bit5 bit4 bit3 62h (R/W) – 53 – bit2 bit1 bit0 Reg. IDAS SIGN IDUN ASGN SCCONF2 0 0 Initial value CXD1804AR bits 1 to 0: IDASSIGN (ID assigned), IDUNASGN (ID unassigned) The combination of these two bits is used to set the CXD1804AR to the various SCAM states. When not using SCAM, IDASSIGN must be set to 1 and IDUNASGN to 0. IDASSIGN IDUNASGN Status 0 0 SCAM monitor status 0 1 ID unassigned status 1 0 ID assigned status 1 1 Undefined SCAM monitor status In this status, the CXD1804AR responds to SCAM selection. If a SCAMSL interrupt is detected in this status, the CXD1804AR must be set to ID unassigned status. The CXD1804AR also responds if selection of the current ID continues for longer than the SCAM unassigned ID selection response delay (4ms) in this status. If a SLWATN or SLWOATN interrupt is detected in this status, the CXD1804AR must be set to ID assigned status. ID unassigned status In this status, the CXD1804AR responds only to SCAM selection. If an ID is assigned by SCAM protocol, the CXD1804AR must be set to ID assigned status. ID assigned status In this status, the CXD1804AR responds only to normal selection, and operates as a SCAM tolerant device. 1-2-20. 63h (1) SCRSLTOT (SCSI Reselection time-out) register (read/write) SCRSLTOT (SCSI Reselection time-out) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 63h (R/W) RSLT OUT7 RSLT OUT6 RSLT OUT5 RSLT OUT4 RSLT OUT3 RSLT OUT2 RSLT OUT1 RSLT OUT0 SCRSLTOT 0 0 0 0 0 0 0 0 Initial value This register sets the Reselection time-out time. The relationship between the value of this register and the Reselection time-out is shown below. Time-out [ms] = 1 × 16.384 × (RSLTOUTn) fCLK [MHz] 1-2-21. 64h (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 64h (R) bit2 bit1 bit0 Reg. Reserved Initial value 64h (W) Reserved Currently not used. – 54 – CXD1804AR 1-2-22. 65h (1) SCID (SCSI ID) register (read) SCID (SCSI ID) register Adr. bit7 bit6 bit5 bit4 65h (R) SEL ID2 SEL ID1 SEL ID0 SELI DINV 0 0 0 0 bit3 0 bit2 bit1 bit0 Reg. OWN ID2 OWN ID1 OWN ID0 SCID 0 0 0 Initial value The ID of the initiator which has selected the CXD1804AR and other information can be read from this register. bits 7 to 5: SELID2 to 0 (selected ID) The ID of the initiator which has selected the CXD1804AR can be read from these bits. Even after Disconnect, this value is held until the CXD1804AR responds to the next selection. bit 4: SELIDINV (selected ID invalid) If single initiator mode is used during selection, this bit is set high. This indicates that SELID2 to 0 are invalid at this time. bits 2 to 0: OWNID2 to 0 (Own ID) The ID of the CXD1804AR/SCSI2 controller block can be read from these bits. (2) SCID (SCSI ID) register (write) SCID (SCSI ID) register Adr. bit7 bit6 bit5 65h (W) REL ID2 REL ID1 REL ID0 bit4 bit3 bit2 bit1 bit0 Reg. OWN ID2 OWN ID1 OWN ID0 SCID This register sets the initiator ID and the CXD1804AR/SCSI2 controller block's own ID when the CXD1804AR performs Reselect. bits 7 to 5: RSLID2 to 0 (Reselect ID) These bits set the ID of the initiator to be reselected. bits 2 to 0: OWNID2 to 0 (Own ID) These bits set the CXD1804AR/SCSI2 controller block's own ID. Note) Own ID should be set before issuing the enable selection command. Since the initial value for Own ID is low, if the enable selection command is issued before setting Own ID, the CXD1804AR will respond to the selection for ID = low. 1-2-23. 66h (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 66h (R) bit2 bit1 bit0 Reg. Reserved Initial value 66h (W) Reserved Currently not used. – 55 – CXD1804AR 1-2-24. 67h (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 67h (R) Reg. Reserved Initial value 67h (W) Reserved Currently not used. 1-2-25. 68h (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 68h (R) Reg. Reserved Initial value 68h (W) Reserved Currently not used. 1-2-26. 69h (1) SCCDBSIZ (SCSI CDB size) register (read/write) SCCDBSIZ (SCSI CDB size) register (when CDBSIZDF = 0) Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 69h (R/W) GP7 B1 GP7 B0 GP6 B1 GP6 B0 GP4 B1 GP4 B0 GP3 B1 GP3 B0 SCCDBSIZ 0 0 0 0 0 0 0 0 Initial value SCCDBSIZ (SCSI CDB size) register (when CDBSIZDF = 1) Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 69h (R/W) GP7 B1 GP7 B0 GP6D B1 GP6D B0 GP6C B1 GP6C B0 GP43 B1 GP43 B0 SCCDBSIZ 0 0 0 0 0 0 0 0 Initial value When the CXD1804AR is selected from the initiator during auto sequence, the number of bytes to be transferred by command phase is determined by the value of the group code field (bits 7 to 5) in the 1st byte of the SCSI CDB's operation code. The CXD1804AR/SCSI2 controller block determines how many bytes are to be transferred according to this value, but groups 7, 6, 4 and 3 are reserved or vendor specific for SCSI standards. – 56 – CXD1804AR The size of the SCSI CDB (command description block) is defined for each value of the group code field (bits 7 to 5) in the 1st byte of the operation code. Group Operation Code Byte length Group 0 000x xxxx 6 bytes Group 1 001x xxxx 10 bytes Group 2 010x xxxx 10 bytes Group 3 011x xxxx Reserved Group 4 100x xxxx Reserved Group 5 101x xxxx 12 bytes Group 6 110x xxxx Vendor Specific Group 7 111x xxxx Vendor Specific Reserved and vendor specific items in the table above can be defined by this register. The command length can be set to 6, 10 or 12 bytes. This register sets the number of bytes to be received when these group commands are received. When CDBSIZDF is "0", each bit is defined as follows. bits 7 to 6: GP7B1 to 0 (group 7) Define the group 7 (vendor specific) command length. bits 5 to 4: GP6B1 to 0 (group 6) Define the group 6 (vendor specific) command length. bits 3 to 2: GP4B1 to 0 (group 4) Define the group 4 (reserved) command length. bits 1 to 0: CG3B1 to 0 (group 3) Define the group 3 (reserved) command length. When CDBSIZDF is "1", each bit is defined as follows. bits 7 to 6: GP7B1 to 0 (group 7) Define the group 7 (reserved) command length. bits 5 to 4: GP6DB1 to 0 (group 6 Dxh) Define the group 6D (vendor specific) command length. This indicates group 6 commands with a CDB operation code of 1101xxxxb. bits 3 to 2: GP6CB1 to 0 (group 6 Cxh) Define the group 6C (vendor specific) command length. This indicates group 6 commands with a CDB operation code of 1100xxxxb. bits 1 to 0: CG43B1 to 0 (group 4 and group 3) Define the group 4 (reserved) and group 3 (reserved) command length. The command lengths of these two groups cannot be defined separately. Two bits are allotted to each of GP7B (1:0), GP6DB (1:0), GP6CB (bits 1, 0), GP43B (bits 1, 0), GP4B (bits 1, 0) and GP3B (bits 1, 0). Command lengths should be set according to the rules listed in the table below. GPxxB1 GPxxB0 Number of bytes 0 0 Undefined 0 1 6 bytes 1 0 10 bytes 1 1 12 bytes – 57 – CXD1804AR 1-2-27. 6Ah (1) SCUSTS (SCSI module microcode status) register (read/write) SCUSTS (SCSI module microcode status) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 6Ah (R) USTS B7 USTS B6 USTS B5 USTS B4 USTS B3 USTS B2 USTS B1 USTS B0 SCUSTS 0 0 0 0 0 0 0 0 Initial value If this register is read when a sequence command has been completed, it indicates how far the sequence has progressed. (2) Reserved (write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 6Ah (W) Reg. Reserved Currently not used. 1-2-28. 6Bh (1) SCSTCONF (stream configuration) register (read/write) SCSTCONF (stream configuration) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 STDS CPRV 6Bh (R) Reg. SCSTCONF Initial value This register specifies the exception processing method when executing stream commands. bit 2: STDSCPRV (stream Disconnect privilege) If this bit is set high, the bus is disconnected when the buffer becomes empty. If this bit is set low, the bus is not disconnected. 1-2-29. 6Ch (1) SCSTRSLM (stream Reselection message) register (read/write) SCSTRSLM (stream Reselection message) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 6Ch (R/W) Reg. SCSTRSLM 0 0 0 0 0 0 0 0 Initial value The message to be transferred to the initiator during the Message In phase immediately following Reselection when executing stream commands is set in this register. – 58 – CXD1804AR 1-2-30. 6Dh (1) SCSTTIOS (stream terminate I/O status) register (read/write) SCSTTIOS (stream terminate I/O status) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 6Dh (R/W) Reg. SCSTTIOS 0 0 0 0 0 0 0 0 Initial value The status to be transferred to the initiator after all data has been transferred when executing stream commands is set in this register. 1-2-31. 6Eh (1) SCSTTIOM (stream terminate I/O message) register (read/write) SCSTTIOM (stream terminate I/O message) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 6Eh (R/W) Reg. SCSTTION 0 0 0 0 0 0 0 0 Initial value The message to be transferred to the initiator after all data has been transferred when executing stream commands is set in this register. 1-2-32. 6Fh (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 6Fh (R) bit2 bit1 bit0 Reg. Reserved Initial value 6Fh (W) Reserved Currently not used. – 59 – CXD1804AR 1-3. Common Registers 1-3-1. 70h (1) INTSTS0 (interrupt status 0) register (read) INTSTS0 (interrupt status 0) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 70h (R) DEC INT DEC TOUT DRV OVRN CRCT END CDR INT "L" "L" SHT SYNC INTSTS0 Initial value bit 7: bit 6: bit 5: bit 4: bit 3 bit 0 DECINT (decoder interrupt) This interrupt is generated when the decoder is executing a command. (1) During execution of a write-only, monitor-only, or real-time error correction command: If the Header byte is received from the CD DSP when a Sync mark is detected or inserted, the DECINT status is generated. However, while the Sync mark detection window is open, the DECINT status is not established if the Sync mark interval is less than 2352 bytes. (2) During repeat correction execution: The DECINT status is established each time one correction is completed. (CRCTEND interrupt?) (3) During CD-DA command execution: The DECINT status is established each time 2352 bytes of data are written. (4) During subcode buffering execution: The DECINT status is established when the subcode for one sector is written in the buffer. DECTOUT (decoder time-out) The DECTOUT status is established when the Sync mark is not detected even after the time it takes to search 3 sectors (40.6ms at normal-speed playback) has elapsed after the decoder has been set to the monitor-only, write-only or real-time correction mode. DRVOVRN (drive overrun) While the decoder is executing a write-only, real-time correction, or CD-DA command, if buffering in the area specified by DLARA is completed, the DRVOVRN status results. CRCTEND (correction end) If error correction of the CD-ROM data is completed, the CRCTEND status results. CDRINT (CD-R interrupt) When the CDRINT status is established, this bit goes high. SHTSYNC (short sync) The SHTSYNC status is established when the decoder is operating in the monitor-only, write-only, real-time correction or asynchronous correction mode. (2) CLRINT0 (clear interrupt 0) register (write) CLRINT0 (clear interrupt 0) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 70h (W) DEC INT DEC TOUT DRV OVRN CRCT END CDR INT "L" "L" SHT SYNC CLRINT0 When each bit of this register is set to "1", the corresponding interrupt status of the INTSTS0 register (70h) is cleared. The bit concerned is automatically set to "0" after its interrupt status has been cleared. Therefore, there is no need for the sub CPU to reset "0". – 60 – CXD1804AR 1-3-2. 71h (1) INTSTS1 (interrupt status 1) register (read) INTSTS1 (interrupt status 1) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 71h (R) bit1 bit0 Reg. TIME R SUBC SYNC INTSTS1 Initial value The value of each bit in this register indicates that of the corresponding interrupt status. These bits are not affected by the values of the INTEN1 register bits. bit 1: TIMER TIMER status is established when the time set in the TIMER-H and L registers has elapsed. bit 0: SUBCSYNC (subcode sync) If a subcode Sync mark is detected or inserted while subcode fetching is enabled, the SUBCSYNC status results. Note that if the SUBCSYNC interrupt is not cleared within 95 WFCK cycles, the SUBCSYNC status is not established the next time a subcode Sync mark is detected or inserted. In this event, the subcode-Q read from the SBQDT register is also not renewed. (2) CLRINT1 (clear interrupt 1) register (write) CLRINT1 (clear interrupt 1) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 71h (W) "L" "L" "L" "L" "L" "L" TIME R SUBC SYNC CLRINT1 When each bit of this register is set to "1", the corresponding interrupt status of the INTSTS1 register (71h) is cleared. The bit concerned is automatically set to "0" after its interrupt status has been cleared. Therefore, there is no need for the sub CPU to reset "0". 1-3-3. 72h (1) INTSTS2 (interrupt status 2) register (read) INTSTS2 (interrupt status 2) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 72h (R) FUNC CMPL CMD IGNR SCSI RST ATN COND SCSI PERR SLW ATN SLWO ATN RSL FAIL INTSTS2 Initial value When an interrupt is generated, the bit allotted to that interrupt is set to "1". Each bit is set regardless of the values of the INTEN2 register (76h). bit 7: FUNCCMPL (function complete) Indicates that execution of the command issued to the CXD1804AR/SCSI2 controller block has been completed. bit 6: CMDIGNR (command ignored) Indicates that the command issued to the CXD1804AR/SCSI2 controller block was not executed. This interrupt is generated when the CXD1804AR is operating in a mode which does not allow the command given to the CXD1804AR to be executed. – 61 – CXD1804AR bit 5: bit 4: bit 3: bit 2: bit 1: bit 0: SCSIRST (SCSI reset) Indicates that the XRST signal was driven on the SCSI bus. Do not write commands in the SCCMD register (50h) until the sub CPU has confirmed that the XRST signal is negated on the SCSI bus by reading the MONRST bit (bit 7) of the SCSTS register (50h). ATNCOND (ATN condition) When the CXD1804AR/SCSI2 controller block is in the target status, this bit indicates that the initiator drove XATN. SCSIPERR (SCSI parity error) Indicates that a parity error occurred on the SCSI data bus in the SCSI transfer phase or the selection phase. This interrupt is not generated when the SPARENB bit of the SCCONF1 register is low. SLWATN (selection with ATN) Indicates that the CXD1804AR/SCSI2 controller block was selected with ATN by another SCSI device, and that the CXD1804AR/SCSI2 controller block responded to this selection. SLWOATN (selection without ATN) Indicates that the CXD1804AR/SCSI2 controller block was selected without ATN by another SCSI device, and that the CXD1804AR/SCSI2 controller block responded to this selection. RSLFAIL (Reselection fail) Indicates that the CXD1804AR/SCSI2 controller block participated in Arbitration during execution of a Reselect command, and that the CXD1804AR/SCSI2 controller block fails or a time-out occurred during Reselection after acquiring the bus by Arbitration. This interrupt is generated only when Reselection fail is repeated for the number of times specified by the RSLRTLM (3:0) bit of the SCCONF1 register. (2) CLRINT2 (clear interrupt 2) register (write) CLRINT2 (clear interrupt 2) register Adr. bit7 bit6 bit5 72h (W) FUNC CMPL CMD IGNR SCSI RST bit4 ATN CONT bit3 bit2 SCSI PERR SLW ATN bit1 SLWO ATN bit0 Reg. RSL FAIL CLRINT2 When each bit of this register is set to "1", the corresponding interrupt status of the INTSTS2 register (72h) is cleared. The bit concerned is automatically set to "0" after its interrupt status has been cleared. Therefore, there is no need for the sub CPU to reset "0". 1-3-4. 73h (1) INTSTS3 (interrupt status 3) register (read) INTSTS3 (interrupt status 3) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 SCAM INIF 73h (R) bit0 SCAM SL Reg. INTSTS3 Initial value When an interrupt is generated, the bit allotted to that interrupt is set to "1". Each bit is set regardless of the values of the INTEN3 register (77h). bit 1: SCAMINF (SCAM initiation fail) Indicates that the CXD1804AR/SCSI2 controller block participated in SCAM initiation and failed at Arbitration. bit 0: SCAMSL (SCAM selection) Indicates that the CXD1804AR/SCSI2 controller block was selected with SCAM selection by another SCSI device, and that the CXD1804AR/SCSI2 controller block responded to this selection. – 62 – CXD1804AR (2) CLRINT3 (clear interrupt 3) register (write) CLRINT3 (clear interrupt 3) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 SCAM INIF 73h (W) bit0 SCAM SL Reg. CLRINT2 When each bit of this register is set to "1", the corresponding interrupt status of the INTSTS3 register (73h) is cleared. The bit concerned is automatically set to "0" after its interrupt status has been cleared. Therefore, there is no need for the sub CPU to reset "0". 1-3-5. 74h (1) INTEN0 (interrupt enable 0) register (read/write) INTEN0 (interrupt enable 0) register Adr. bit7 bit6 bit5 bit4 bit3 74h (R/W) DEC INT DEC TOUT DRV OVRN CRCT END CDR INT bit2 bit1 bit0 Reg. SHT SYNC INTEN0 Initial value Setting each bit of this register high enables interrupt requests to the sub CPU from this IC in response to the corresponding interrupt status. (In other words, if that interrupt status results, the INT pin goes active.) The value of each bit in this register has no effect on their corresponding interrupt status. bit 7: DECINT (decoder interrupt) bit 6: DECTOUT (decoder time-out) bit 5: DRVOVRN (drive overrun) bit 4: CRCTEND (correction end) bit 3: CDRINT (CD-R interrupt) bit 0: SHTSYNC (short sync) 1-3-6. 75h (1) INTEN1 (interrupt enable 1) register (read/write) INTEN1 (interrupt enable 1) register Adr. bit7 bit6 bit5 bit4 bit3 75h (R/W) bit2 bit1 bit0 Reg. TIME R SUBC SYNC INTEN1 Initial value Setting each bit of this register high enables interrupt requests to the sub CPU from this IC in response to the corresponding interrupt status. (In other words, if that interrupt status results, the INT pin goes active.) The value of each bit in this register has no effect on their corresponding interrupt status. bit 1: TIMER bit 0: SUBCSYNC (Subcode Sync) – 63 – CXD1804AR 1-3-7. 76h (1) INTEN2 (interrupt enable 2) register (read/write) INTEN2 (interrupt enable 2) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 76h (R/W) FUNC CMPL CMD IGNR SCSI RST ATN COND SCSI PERR SLW ATN SLWO ATN RSL FAIL INTEN2 Initial value Setting each bit of this register high enables interrupt requests to the sub CPU from this IC in response to the corresponding interrupt status. (In other words, if that interrupt status results, the INT pin goes active.) The value of each bit in this register has no effect on their corresponding interrupt status. bit 7: FUNCCMPL (function complete) bit 6: CMDIGNR (command ignored) bit 5: SCSIRST (SCSI reset) bit 4: ATNCOND (ATN condition) bit 3: SCSIPERR (SCSI parity error) bit 2: SLWATN (selection with ATN) bit 1: SLWOATN (selection without ATN) bit 0: RSLFAIL (Reselection fail) 1-3-8. 77h (1) INTEN3 (interrupt enable 3) register (read/write) INTEN3 (interrupt enable 3) register Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 SCAM INIF 77h (R/W) bit0 SCAM SL Reg. INTEN3 Initial value Setting each bit of this register high enables interrupt requests to the sub CPU from this IC in response to the corresponding interrupt status. (In other words, if that interrupt status results, the INT pin goes active.) The value of each bit in this register has no effect on their corresponding interrupt status. bit 1: SCAMINIF (SCAM initiation fail) bit 0: SCAMSL (SCAM selection) – 64 – CXD1804AR 1-3-9. 78h (1) INTSRC (interrupt source) register (read) INTSRC (interrupt source) register Adr. bit7 bit6 bit5 bit4 bit3 78h (R) bit2 bit1 bit0 Reg. SCSI REL SCTM REL DEC REL INTSRC Initial value The internal block interrupt which drove the interrupt pin can be known by reading this register. bits 7 to 3: RESERVED bit 2: SCSIREL (SCSI related) When this bit is high, this indicates that the interrupt pin is being driven by an INTSTS2 or INTSTS3 register interrupt which is enabled by the INTEN2 or INTEN3 register. bit 1: SCTMREL (subcode and timer related) When this bit is high, this indicates that the interrupt pin is being driven by an INTSTS1 register interrupt which is enabled by the INTEN1 register. bit 0: DECREL (decoder related) When this bit is high, this indicates that the interrupt pin is being driven by an INTSTS0 register interrupt which is enabled by the INTEN0 register. (2) Reserved (write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 78h (W) Reg. Reserved Currently not used. 1-3-10. 79h (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 79h (R) Reserved 79h (W) Reserved Currently not used. 1-3-11. 7Ah (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 7Ah (R) Reserved 7Ah (W) Reserved Currently not used. – 65 – CXD1804AR 1-3-12. 7Bh (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 7Bh (R) Reserved 7Bh (W) Reserved Currently not used. 1-3-13. 7Ch (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 7Ch (R) Reserved 7Ch (W) Reserved Currently not used. 1-3-14. 7Dh (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 7Dh (R) Reserved 7Dh (W) Reserved Currently not used. 1-3-15. 7Eh (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 7Eh (R) Reserved 7Eh (W) Reserved Currently not used. – 66 – CXD1804AR 1-3-16. 7Fh (1) Reserved (read/write) Reserved Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 7Fh (R) Reserved 7Fh (W) Reserved Currently not used. – 67 – CXD1804AR [2] Description of SCSI Controller Block Commands The CXD1804AR/SCSI2 core is designed to automatically execute procedures other than data transfer to the greatest extent possible in order to reduce data transfer overloads. CXD1804AR/SCSI2 core command set CAT1 CAT0 CMD5 CMD4 CMD3 CMD2 CMD1 CMD0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 Description NOP CHIP Reset Flush FIFO Assert SCSI Control Deasert SCSI Control Assert SCSI Data Deasert SCSI Data Enable Selection Disable Selection CAT1 CAT0 CMD5 CMD4 CMD3 CMD2 CMD1 CMD0 0 0 0 0 1 1 1 1 CAT1 CAT0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BUF ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 Description Reselect and Send Message (s) Initiate SCAM Reselect, Send Message (s) and Receive Data Reselect, Send Message (s) and Send Data SUB CMD3 CMD2 CMD1 CMD0 Description ∗ 0 0 0 0 Receive Data ∗ 0 0 0 1 Send Data ∗ 0 0 1 0 Reserved ∗ 0 0 1 1 Reserved ∗ 0 1 0 0 Reseive Command ∗ 0 1 0 1 Send Status ∗ 0 1 1 0 Receive Message ∗ 0 1 1 1 Send Message 0 1 0 0 0 Disconnect 0 1 0 0 1 Send Message (s) and Disconnect 0 1 0 1 0 Terminate I/O and bus free 0 1 0 1 1 Terminate I/O and link 0 1 1 0 0 Receive Command Sequence CAT1 CAT0 CMD5 CMD4 CMD3 CMD2 CMD1 CMD0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 Description Stream Abort Stream and Stop Stream and Bus Free Stream and Link Stream Pause ∗ Either "1" or "0" can be written. However, if the BUF bit is "1", "0" must be written for the SUB bit. States which allow commands to be executed are limited for each category. CAT1 CAT0 Description 0 0 Can be executed in all states 0 1 Can be executed only in the Disconnect status 1 0 Can be executed only in the target mode 1 1 Stream commands – 68 – CXD1804AR 2-1. Precautions when Executing Commands In the CXD1804AR, an interrupt is generated for the sub CPU at the point when an interrupt event occurs. However, the sub CPU must wait until a FUNCCMPL interrupt (INTSTS2, bit 7) is generated. 2-2. Category 00 Commands These commands can be executed regardless of the CXD1804AR/SCSI2 core status. 2-2-1. NOP (00h) Description: When this command is issued, a FUNCCMPL interrupt is generated but no other action is taken. Preparation: None Operation: After this command is issued, the CMDINPRG bit (SCSTS register (50h), bit 0) goes high. Then, after the FUNCCMPL interrupt is generated, the CMDINPRG bit goes low and the command is completed. Interrupt: FUNCCMPL function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status has no meaning with this command. 2-2-2. CHIP reset (01h) Description: This command initializes the registers (50h to 6Fh, 72h to 73h, and 76h to 77h) inside the SCSI block and resets the microcode PC. In this event, commands currently being executed are forcibly interrupted. Preparation: None Operation: Commands are normally decoded by a microprogram in the CXD1804AR/SCSI2 core. However, when this command is issued, the CXD1804AR/SCSI2 core decodes this command with the hardware instead of the microcode and generates a reset signal internally. Commands currently being executed are also forcibly interrupted. Interrupt: An interrupt is not generated. After this command is issued, the sub CPU must wait for 150ns before issuing the next command. Microcode status: The microcode status has no meaning with this command. 2-2-3. Flush FIFO (03h) Description: This command clears the FIFO address counter, invalidates all data within the FIFO, and sets the FIFO to empty status. Preparation: None Operation: After this command is issued, the FIFO is set to empty status. Interrupt: An interrupt is not generated. If the XWAT pin is not used, wait 150ns or more after this command is issued before issuing the next command. Microcode status: The microcode status has no meaning with this command. – 69 – CXD1804AR 2-2-4. Assert SCSI control (04h) Description: This command enables direct control of the SCSI control bus signals through the SCSCBCTL register (5Eh). Preparation: When this command is issued, the value of the SCSCBCTL register is output as is to the SCSI bus. Therefore, be sure to check the contents of the SCSCBCTL register before executing this command. Operation: This command enables direct control of the SCSI control bus signals and is then completed. After this command is executed, if each bit of the SCSCBCTL register (5Eh) allotted to each SCSI control bus signal is set high, the corresponding signal is driven. Interrupt: An interrupt is not generated. If the XWAT pin is not used, wait 150ns or more after this command is issued before issuing the next command. Microcode status: The microcode status has no meaning with this command. 2-2-5. Deassert SCSI control (05h) Description: This command prohibits direct control of the SCSI control bus signals through the SCSCBCTL register (5Eh). Preparation: None Operation: This command prohibits direct control of the SCSI control bus signals and is then completed. The SCSI control signals which were controlled directly from the SCSCBCTL register (5Eh) are deasserted. The data written in the SCSCBCTL register is held. Interrupt: An interrupt is not generated. If the XWAT pin is not used, wait 150ns or more after this command is issued before issuing the next command. Microcode status: The microcode status has no meaning with this command. 2-2-6. Assert SCSI data (06h) Description: This command enables direct control of the SCSI data bus through the SCDATA register (57h). Control is disabled immediately after resetting the hardware or issuing the chip reset command. Preparation: None Operation: Direct control of each bit of the SCSI data bus is enabled and then the command is completed. After this command is executed, if data is written in the SCDATA register (57h), this data is output directly to the SCSI data bus. At this time, the FIFO does not perform FIFO functions. Interrupt: An interrupt is not generated. If the XWAT pin is not used, wait 150ns or more after this command is issued before issuing the next command. Microcode status: The microcode status has no meaning with this command. – 70 – CXD1804AR 2-2-7. Deassert SCSI data (07h) Description: This command prohibits direct control of the SCSI data bus through the SCDATA register (57h). Direct control of the SCSI data bus is disabled immediately after resetting the hardware or issuing the chip reset command. Preparation: None Operation: When this command is executed, direct control of the SCSI data bus is prohibited and then the command is completed. The FIFO operates normally after the command is executed. Interrupt: An interrupt is not generated. If the XWAT pin is not used, wait 150ns or more after this command is issued before issuing the next command. Microcode status: The microcode status has no meaning with this command. 2-2-8. Enable selection (08h) Description: This command allows the CXD1804AR/SCSI2 core to respond to the selection. The CXD1804AR/SCSI2 core does not respond to the selection in the following cases. a) After chip reset b) After issuing the chip reset command c) After the Bus-Free status is established by a Disconnect command d) After the Bus-Free status is established by a terminate (including stream and Bus-Free) command Operation following the execution of this command varies according to the settings of the IDASSIGN and IDUNASGN bits of the SCCONF2 register (62h). a) IDASSIGN = 0, IDUNASGN = 0: SCAM monitor status 1) The CXD1804AR/SCSI2 core responds to SCAM selection. 2) The CXD1804AR/SCSI2 core responds when selection of the current ID continues for longer than the SCAM unassigned ID selection response delay (4ms). b) IDASSIGN = 0, IDUNASGN = 1: ID unassigned status 1) The CXD1804AR/SCSI2 core responds to SCAM selection. c) IDASSIGN = 1, IDUNASGN = 0: ID assigned status 1) The CXD1804AR/SCSI2 core responds to normal selection. Responding to SCAM selection If SCAM selection is detected in the SCAM monitor or ID unassigned status, a SCAMSL interrupt and then a FUNCCMPL interrupt are generated. After this, the sub CPU must execute SCAM protocol using assert SCSI control and assert SCSI data. Responding to selection When normal selection is detected during the ID assigned status, or when selection of the current ID continues for longer than 4 ms in the SCAM monitor status, the following sequences are executed. a) When responding to selection with ATN Bus-Free → Arbitration → Selection with ATN → Message Out → Command b) When responding to selection without ATN Bus-Free → Arbitration → Selection without ATN → Command – 71 – CXD1804AR Preparation: The following settings must be made before executing the enable selection command. 1) Set the SCCONF0 register (60h) Set the appropriate values. 2) Set the SCID register (65h) Set the characteristic SCSI ID of the CXD1804AR/SCSI2 core. The initial SCSI ID setting is "0". Therefore, be sure to set the SCSI ID before executing the enable selection command. 3) Set the SCCONF1 register (61h). Set the number of Reselection retries for the CXD1804AR/SCSI2 core. 4) Set the SCCONF2 register (62h) Set the CXD1804AR status after executing the enable selection command. Operation: Enable selection operation If this command is issued, the CXD1804AR/SCSI2 core is set to status which enables selection and then a FUNCCMPL interrupt is generated. Interrupt: An interrupt is not generated. If the XWAT pin is not used, wait 150ns or more after this command is issued before issuing the next command. Microcode status: The microcode status has no meaning with this command. (1) When responding to selection with ATN Bus-Free → Arbitration → Selection with ATN → Message Out → Command Operation: 1) When the characteristic SCSI ID of the CXD1804AR/SCSI2 core is detected by selection, the CXD1804AR/SCSI2 core responds to this and generates a SLWATN interrupt. 2) Operation shifts to the Message Out phase and a message is received from the initiator. 3) Operation shifts to the command phase and the CDB (command description block) is received. The number of bytes received is determined inside the CXD1804AR/SCSI2 core from the group code field (bits 7 to 5) in the 1st CDB byte of the operation code. Groups for which the CDB size is undefined by SCSI standards (groups 7, 6, 4 and 3) can be defined by the SCCDBSIZ register (69h). Interrupt: SLWATN Selection with ATN (INTSTS2 register (72h), bit 2) FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status value when the command is completed has the following meanings. Code Description 01h An error occurred in the Message Out phase. 02h A valid identify message was received in the Message Out phase and operation shifted to the command phase. – 72 – CXD1804AR (2) When responding to selection without ATN Bus-Free → Arbitration → Selection without ATN → Command Operation: 1) When the characteristic SCSI ID of the CXD1804AR/SCSI2 core is detected by selection, the CXD1804AR/SCSI2 core responds to this and generates a SLWOATN interrupt. 2) Operation shifts to the command phase and the CDB (command description block) is received. The number of bytes received is determined inside the CXD1804AR/SCSI2 core from the group code field (bits 7 to 5) in the 1st CDB byte of the operation code. Groups for which the CDB size is undefined by SCSI standards (groups 7, 6, 4 and 3) can be defined by the SCCDBSIZ register (69h). Interrupt: SLWOATN Selection without ATN (INTSTS2 register (72h), bit 1) FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status value when the command is completed has the following meaning. Code 02h Description Operation shifted to the command phase. (3) When responding to SCAM selection Bus-Free → Arbitration → SCAM selection Operation: 1) If SCAM selection is detected, a SCAMSL interrupt and then a FUNCCMPL interrupt are generated, and the command is completed. 2) Following this, the sub CPU must execute SCAM protocol using assert SCSI control and assert SCSI data. Interrupt: SCAMSL SCAM Selection (INTSTS3 register (73h), bit 0) FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: In this case, the microcode status value has no meaning. 2-2-9. Disable selection (09h) Description: This command sets the CXD1804AR/SCSI2 core so that it does not respond to selection from another SCSI device. Operation: If this command is issued, the CXD1804AR/SCSI2 core is set so that it does not respond to selection from another SCSI device and then the command is completed. Interrupt: An interrupt is not generated. If the XWAT pin is not used, wait 150 ns or more after this command is issued before issuing the next command. Microcode status: In this case, the microcode status value has no meaning. – 73 – CXD1804AR 2-3. Category 01 Commands These commands can be executed only in the Disconnect status. 2-3-1. Reselect sequences (40h, 42h, 43h) Description: These are auto sequence commands which are executed when attempting reconnection with the initiator after Disconnect. The Reselect command has the following two levels. a) After Reselect, operation shifts to the Message In phase and the message is transferred. 1) Reselect and Send Message(s) (40h) Bus-Free → Arbitration → Reselection → Message In b) Data transfer (Data In or Data Out phase) is executed after a). 1) Reselect, Send Message(s) and Receive Data (42h) Bus-Free → Arbitration → Reselection → Message In → Data Out 2) Reselect, Send Message(s) and Send Data (43h) Bus-Free → Arbitration → Reselection → Message In → Data In Preparation: A number of operations must be performed before issuing this command. Common operations: 1) Specify the CXD1804AR operation with the SCCONF0 (60h), SCCONF1 (61h) and SCCONF2 (62h) registers. 2) Set the SCSI ID of the initiator to be reselected and the CXD1804AR's own SCSI ID in the SCID register (65h). 3) Set the FIFO to empty status with the Flush FIFO command and then write the message to be transferred in the Message In phase in the FIFO. Only when transferring data after executing the Message In phase: 4) The decoder block side must be prepared for transfer in advance using Reselect, Send Message(s) and Receive/Send Data. Operation: Bus-Free → Arbitration → Reselection If the Reselect command is executed, first the CXD1804AR/SCSI2 core first waits for Bus-Free and then enter Arbitration. Upon successfully winning the Arbitration, it then shifts to Reselection. a) When the RSLRTLM (3 to 0) bit of the SCCONF1 register is "00h": This sequence is repeated until both Arbitration and Reselection are completed successfully. b) When the RSLRTLM (3 to 0) bit of the SCCONF1 register is greater than "00h": This sequence is repeated for the number of times set by RSLRTLM. When the number of times reaches the set number, processing stops, a RSLFAIL interrupt and then a FUNCCMPL interrupt are generated, and then the command is completed. When the CXD1804AR acquires the right to use the bus during the Arbitration phase, operation proceeds to the next step only if reconnection with the initiator is successful in the Reselection phase. Message In phase If reconnection is successful, operation shifts to the Message In phase and the message prepared beforehand in the FIFO, before issuing the command, is transferred to the initiator. If the attention condition is established during the transfer, ATNCOND and FUNCCMPL interrupts are generated and transfer stops at that point. However, the first byte of the message (normally identify) is always transferred. – 74 – CXD1804AR Data In/Data Out phase Operation shifts to either the Data In or Data Out phase as specified by the command only when the attention condition was not generated by Reselect, Send Message (s) and Receive/Send Data during the Message In phase. Transfer is performed in the DMA mode between the buffer and the SCSI. If the attention condition is established or a parity error occurs on the SCSI bus during the transfer, the corresponding interrupts are generated. Whether or not transfer is stopped by these factors is determined by the setting of the HSXFRSPE or HSXFRAT bits of the SCCONF1 register. Interrupt: If the transfer is completed normally without problems: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) If the CXD1804AR/SCSI2 core is selected immediately after the command is issued or it fails at Arbitration: SLWOATN Selected without ATN (INTSTS2 register (72h), bit 1) SLWATN Selected with ATN (INTSTS2 register (72h), bit 2) FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) If the CXD1804AR/SCSI2 core fails at Arbitration or Reselection: RSLFAIL Reselection fail (INTSTS2 register (72h), bit 0) FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status value when the command is completed has the following meanings. Code Description 00h Completed normally. 01h Reselection failed. 02h The attention condition was established during the Message In phase. 03h The attention condition was established during the Data In/Out phase, or a parity error occurred (Data Out phase only). 2-3-2. Initiate SCAM (41h) Description: If this command is executed, the CXD1804AR/SCSI2 core executes Arbitration without outputting its own ID. Operation: If this command is executed, the CXD1804AR/SCSI2 core executes Arbitration without outputting its own ID. If the CXD1804AR/SCSI2 core succeeds at Arbitration, the FUNCCMPL interrupt is generated with XBSY and XSEL driven. If the CXD1804AR/SCSI2 core fails at Arbitration, the SCAMINIF and FUNCCMPL interrupts are generated and the command is completed. Interrupt: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) SCAMINIF SCAM initiation fail (INTSTS3 register (73h), bit 1) – 75 – CXD1804AR 2-4. Category 10 Commands This commands can be executed only in the target mode status. If these commands are executed in any other status, a CMDIGNR interrupt is generated. Commands for targets can be broadly classified into three groups. a) Phase unit of transfer commands b) Disconnect commands c) Terminate I/O commands 2-4-1. Single phase of transfer commands Single phase transfer commands include the following commands. a) Receive data (80h) b) Send data (81h) c) Receive command (84h) d) Send status (85h) e) Receive message (86h) f) Send message (87h) g) Receive command sequence (8Ch) These commands execute the transfer phase of the corresponding name. Each transfer command has three modes. The mode is determined by the combination of the command's BUF (bit 5) and SUB (bit 4) bits. BUF SUB Mode 0 0 Sub CPU – SCSI 1-byte transfer 0 1 Sub CPU – SCSI n-byte transfer (n = 1 to 16) 1 0 Buffer – SCSI transfer 1 1 Undefined a) Sub CPU – SCSI 1-byte transfer 1) From the sub CPU to the SCSI: The sub CPU must write the data to be transferred in the FIFO beforehand. 2) From the SCSI to the sub CPU: If the command is executed, one byte of data enters the FIFO when a FUNCCMPL interrupt occurs. b) Sub CPU – SCSI n-byte transfer (n = 1 to 16) 1) From the sub CPU to the SCSI: The sub CPU must write the data to be transferred in the FIFO beforehand. 2) From the SCSI to the sub CPU: The number of bytes to be received must be written in the SXFRC register (58h) before issuing the command. The maximum number of bytes which can be transferred with a single transfer is 16. If the command is executed, data enters the FIFO when a FUNCCMPL interrupt occurs. At this time, the number of bytes remaining to be transferred can be known by reading the SXFRC register (58h). If the transfer is not interrupted by an SCSI parity error or the ATN condition, this value is "0". c) Buffer – SCSI transfer The command is issued after setting the transfer at the decoder block side. Data can also be written in the FIFO beforehand. – 76 – CXD1804AR (1) Receive command sequence (8Ch) Description: The CDB is analyzed and received in the command phase. Note) This command should be executed only when not even a single byte has been received yet in the command phase. Preparation: A number of operations must be performed before issuing this command. 1) Set the number of bytes when receiving a command from a command group which is undefined by SCSI standards with the SCCDBSIZ register (69h). Operation: After shifting to the command phase, six CDB bytes are received unconditionally. After that, the first CDB byte is analyzed, command group identification is performed and the number of deficient bytes is received. Interrupt: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status has no meaning with this command. 2-4-2. Disconnect commands These commands are issued in order to release the bus when the CXD1804AR/SCSI2 core has completed a series of operations as the target. (1) Disconnect (88h) Description: This command releases the SCSI bus in accordance with SCSI standards and sets the SCSI bus to Bus-Free status. Interrupt: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status has no meaning with this command. (2) Send Message(s) and Disconnect (89h) Description: This command executes the Message In phase and then disconnects. Preparation: A number of operations must be performed before issuing this command. 1) Set the FIFO to empty status with the Flush FIFO command and then write the message to be transferred in Message In phase in the FIFO. Operation: After shifting to the Message In phase and transferring the FIFO data, the CXD1804AR/SCSI2 core is set to the disable selection status. Then the Bus-Free status is established, a FUNCCMPL interrupt is generated and the command is completed. Interrupt: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status has no meaning with this command. – 77 – CXD1804AR 2-4-3. Terminate I/O commands These commands are issued in order to release the bus when the CXD1804AR/SCSI2 core has completed a series of operations as the target. (1) Terminate I/O and Bus-Free (8Ah) Description: After transferring one byte of the status in the Status phase, operation shifts to the Message In phase and the message is transferred to the initiator. Then, the connection is disconnected and the SCSI bus is set to Bus-Free status. Preparation: A number of operations must be performed before issuing this command. 1) Set the FIFO to empty status with the Flush FIFO command and then write the one byte to be transferred in the Status phase and the message to be transferred in the Message In phase in the FIFO. Operation: After shifting to the Status phase and transferring one byte of the FIFO data, operation shifts to the Message In phase and the FIFO data is transferred. Upon completion of the transfer, the CXD1804AR/SCSI2 core is set to the disable selection status. Then Bus-Free status is established, a FUNCCMPL interrupt is generated and the command is completed. Interrupt: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status value when the command is completed has the following meanings. Code Description 00h Completed normally. 01h The ATN condition was established while executing the Status phase. 02h The ATN condition was established while executing the Message In phase. (2) Terminate I/O and link (8Bh) Description: After transferring one byte of the status in the Status phase, operation shifts to the Message In phase and the message is transferred to the initiator. Then, operation shifts to the command phase, the SCSI CDB is received, and the command is completed. Preparation: A number of operations must be performed before issuing this command. 1) Set the FIFO to the empty status with the Flush FIFO command and then write the one byte to be transferred in the Status phase and the message to be transferred in the Message In phase in the FIFO. Operation: After shifting to the Status phase and transferring one byte of the FIFO data, operation shifts to the Message In phase and the FIFO data is transferred. Then, operation shifts to the command phase, the CDB is received, a FUNCCMPL interrupt is generated and the command is completed. Interrupt: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status value when the command is completed has the following meanings. Code Description 00h Completed normally. 01h The ATN condition was established while executing the Status phase. 02h The ATN condition was established while executing the Message In phase. 03h Operation shifted to the command phase after completing terminate I/O processing. – 78 – CXD1804AR 2-5. Category 11 Commands These commands are stream commands, and can be executed anytime as long as a different command is not currently being executed. Terminology 1) Completed Completed has the following meaning with stream processing. Streams being executed cannot be reopened when they are completed. Streams are completed when processing finishes normally. Streams can also be completed when they are in interrupted state. 2) Interrupted Interrupted has the following meaning with stream processing. Streams are interrupted if the ATN condition is established, Reselection fails, or the CXD1804AR responds to a selection while executing the stream. Streams being executed can be reopened when they are in interrupted state. 2-5-1. Stream abort Description: Stream processing is forcibly completed. Preparation: Before this command is issued, any one of the following conditions must be met. a) The stream is interrupted by the ATN condition. b) The stream is interrupted because Reselection failed. c) The stream is interrupted because the CXD1804AR responded to a selection. d) The stream is interrupted after executing the stream pause command. Operation: After internally resetting the stream related circuits, a FUNCCMPL interrupt is generated and the command is completed. Interrupt: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status has no meaning with this command. – 79 – CXD1804AR 2-5-2. Stream and stop (C1h) Description: The stream command is executed. Preparation: A number of operations must be performed before issuing this command. 1) Specify the CXD1804AR operation with the SCCONF0 (60h), SCCONF1 (61h) and SCCONF2 (62h) registers. 2) Specify Disconnect allowed/not allowed and the operation when the ATN condition is established with the SCSTCONF register. 3) Write the message to be transferred in the Message In phase immediately after Reselection, and the data to be transferred in the status and Message In phases of the terminate I/O sequence beforehand in the SCSTRSLM, SCSTTIOS and SCSTTIOM registers, respectively. 4) Prepare for auto transfer on the decoder block side. Operation: When Disconnect is allowed, the following sequences are executed. a) The following sequence is executed each time the buffer data reaches the buffer full ratio during transfer. Reselection → Message In → Data In → Message In → Disconnect b) The following sequence is executed only during the final connection. Reselection → Message In → Data In When Disconnect is not allowed, the following sequence is executed. a) Data In Interrupt: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status value when the command is completed has the following meanings. Code Description 00h Completed normally. 01h The CXD1804AR was selected and an error occurred in the Message In phase. 02h The CXD1804AR was selected and operation shifted to the command phase. 03h Reselection failed. 04h The ATN condition was established in the Message In phase immediately after Reselection. 05h The ATN condition was established in the Data In phase. 06h The ATN condition was established in the Message In phase during Disconnect. 07h The ATN condition was established in the Status phase during terminate I/O. 08h The ATN condition was established in the Message In phase during terminate I/O. The meaning of each code after the stream pause command (C4h) has been issued is basically the same. However, the meaning of the following codes changes slightly. Code Description 00h Completed normally. However, the stream is interrupted. 04h The ATN condition was established in the Message In phase immediately after Reselection. When the ATN condition is not established, the data to be transferred has already been transferred and the stream is interrupted. 05h The ATN condition was established in the Data In phase. When the ATN condition is not established, the data to be transferred has already been transferred and the stream is interrupted. – 80 – CXD1804AR 2-5-3. Stream and Bus-Free (C2h) Description: The stream command is executed. Preparation: A number of operations must be performed before issuing this command. 1) Specify the CXD1804AR operation with the SCCONF0 (60h), SCCONF1 (61h) and SCCONF2 (62h) registers. 2) Specify Disconnect allowed/not allowed and the operation when the ATN condition is established with the SCSTCONF register. 3) Write the message to be transferred in the Message In phase immediately after Reselection, and the data to be transferred in the status and Message In phases of the terminate I/O sequence beforehand in the SCSTRSLM, SCSTTIOS and SCSTTIOM registers, respectively. 4) Prepare for auto transfer on the decoder block side. Operation: When Disconnect is allowed, the following sequences are executed. a) The following sequence is executed each time the buffer data reaches the buffer full ratio during transfer. Reselection → Message In → Data In → Message In → Disconnect b) The following sequence is executed only during the final connection. Reselection → Message In → Data In → Status → Message In → Bus-Free When Disconnect is not allowed, the following sequence is executed. a) Data In → Status → Message In → Bus-Free Interrupt: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status value when the command is completed has the following meanings. Code Description 00h Completed normally. 01h The CXD1804AR was selected and an error occurred in the Message In phase. 02h The CXD1804AR was selected and operation shifted to the command phase. 03h Reselection failed. 04h The ATN condition was established in the Message In phase immediately after Reselection. 05h The ATN condition was established in the Data In phase. 06h The ATN condition was established in the Message In phase during Disconnect. 07h The ATN condition was established in the Status phase during terminate I/O. 08h The ATN condition was established in the Message In phase during terminate I/O. The meaning of each code after the stream pause command (C4h) has been issued is basically the same. However, the meaning of the following codes changes slightly. Code Description 00h Completed normally. However, the stream is interrupted. 04h The ATN condition was established in the Message In phase immediately after Reselection. When the ATN condition is not established, the data to be transferred has already been transferred and the stream is interrupted. 05h The ATN condition was established in the Data In phase. When the ATN condition is not established, the data to be transferred has already been transferred and the stream is interrupted. – 81 – CXD1804AR 2-5-4. Stream and link (C3h) Description: The stream command is executed. Preparation: A number of operations must be performed before issuing this command. 1) Specify the CXD1804AR operation with the SCCONF0 (60h), SCCONF1 (61h) and SCCONF2 (62h) registers. 2) Specify Disconnect allowed/not allowed and the operation when the ATN condition is established with the SCSTCONF register. 3) Write the message to be transferred in the Message In phase immediately after Reselection, and the data to be transferred in the status and Message In phases of the terminate I/O sequence beforehand in the SCSTRSLM, SCSTTIOS and SCSTTIOM registers, respectively. 4) Prepare for auto transfer on the decoder block side. Operation: The following sequences are executed. a) The following sequence is executed each time the buffer data reaches the buffer full ratio during transfer. Reselection → Message In → Data In → Message In → Disconnect b) The following sequence is executed only during the final connection. Reselection → Message In → Data In → Status → Message In → Command When Disconnect is not allowed, the following sequence is executed. a) Data In → Status → Message In → Command Interrupt: FUNCCMPL Function complete (INTSTS2 register (72h), bit 7) Microcode status: The microcode status value when the command is completed has the following meanings. Description Code 00h Completed normally. 01h The CXD1804AR was selected and an error occurred in the Message In phase. 02h The CXD1804AR was selected and operation shifted to the command phase. 03h Reselection failed. 04h The ATN condition was established in the Message In phase immediately after Reselection. 05h The ATN condition was established in the Data In phase. 06h The ATN condition was established in the Message In phase during Disconnect. 07h The ATN condition was established in the Status phase during terminate I/O. 08h The ATN condition was established in the Message In phase during terminate I/O. 09h Operation shifted to the command phase after executing terminate I/O processing. The meaning of each code after the stream pause command (C4h) has been issued is basically the same. However, the meaning of the following codes changes slightly. Code Description 04h The ATN condition was established in the Message In phase immediately after Reselection. When the ATN condition is not established, the data to be transferred has already been transferred and the stream is interrupted. 05h ATN condition was established in the Data In phase. When the ATN condition is not established, the data to be transferred has already been transferred and the stream is interrupted. 09h Operation shifted to the command phase after executing terminate I/O processing. However, the stream is interrupted. – 82 – CXD1804AR 2-5-5. Stream pause (C4h) Description: The stream command is interrupted. This command is executed when the stream is to be interrupted for any reason other than SCSI related factor. For example, upon seek error. Preparation: This command can be issued anytime while executing the stream command. Operation: Operation switches to a mode which transfers all transferable data. An interrupt is not generated. After all transferable data has been transferred, the stream command being executed generates a FUNCCMPL interrupt and the command is completed. Stream commands being executed when the stream pause command is issued perform the following operations. a) When the stream pause command is issued while executing the Data In phase: After all transferable data has been transferred, a FUNCCMPL interrupt is generated and the command is completed. b) When the stream pause command is issued in the Bus-Free condition: Reselection and the Message In phase are executed regardless of the values of BFFLRT and BFBLKC. If there is transferable data, the Data In phase is executed, a FUNCCMPL interrupt is generated and the command is completed. The ATN condition following the issue of the stream pause command is processed normally. Interrupt: An interrupt is not generated for this command. After this command is issued, an interrupt is generated for stream commands which are being executed at that point when these streams are interrupted or completed. See the description of each command for details. Microcode status: The microcode status conforms to the stream commands being executed when the stream pause command is issued. – 83 – CXD1804AR [3] Appendix A 3-1. List of CD-ROM Decoder Block Registers 3-1-1. CD-ROM decoder block read registers Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 00h b7 b6 b5 b4 b3 b2 b1 b0 RAWMIN 01h b7 b6 b5 b4 b3 b2 b1 b0 RAWSEC 02h b7 b6 b5 b4 b3 b2 b1 b0 RAWBLK 03h b7 b6 b5 b4 b3 b2 b1 b0 RAWMD 04h b7 b6 b5 b4 b3 b2 b1 b0 BFMIN 05h b7 b6 b5 b4 b3 b2 b1 b0 BFSEC 06h b7 b6 b5 b4 b3 b2 b1 b0 BFHDRBLK 07h b7 b6 b5 b4 b3 b2 b1 b0 BFMD 08h b7 b6 b5 b4 b3 b2 b1 b0 BFFILE 09h b7 b6 b5 b4 b3 b2 b1 b0 BFCHAN 0Ah b7 b6 b5 b4 b3 b2 b1 b0 BFSUBM 0Bh b7 b6 b5 b4 b3 b2 b1 b0 BFDTYP 0Ch MIN UTE SEC OND BLO CK MODE CDR DTEN RAWHDR FLG 0Dh MIN UTE SEC OND BLO CK MODE FILE CHAN NEL SUB MODE DATA TYPE BFHDR FLG 0Eh SHRT SCT NO SYNC COR INH ERIN BLK COR DONE EDC NG ECC NG TGTN TMET DECSTS 0 EDC ALL0 C MODE C FORM DECSTS 1 b8 LSTARA-H b0 LSTARA-L b8 LHADR-H 0Fh 10h 11h b7 b6 b5 b4 b3 b2 b1 12h 13h b7 b6 b5 b4 b3 b2 b1 b0 LHADR-L 14h 1024 XFR 512 XFR SYNC HEAD ER SBHE ADER USER DATA PARI TY AUTO XFR XFRFMT 0 15h ENBL KEFL BLKE FLSL ENBY TFBT BYTE FLSL ENSB CBT ALL SBC SBCE STS ZA SQEF XFRFMT 1 16h AUTO DIST MODE SEL FORM SEL ENFM 2EDC MDBY TCTL EN DLA ATDL RNEW DECCTL 0 17h ENSB QRD DEC CMD0 NTCR CT2 NTCR CT1 NTCR CT0 DECCTL 1 18h REV# 2 REV# 1 REV# 0 CBFW RRDY CBFR DRDY XFRSTS 19h b7 b6 b5 b1 b0 CPUBRDT DEC CMD2 DEC CMD1 CMDO BUSY b4 b3 b2 Sub CPU read registers (1) – 84 – CXD1804AR Adr. bit7 1Ah SUBQ FMSL 1Bh SBC OVRN 1Ch SBQ ERR bit6 OVER FLOW bit5 bit4 BFNT VAL NO SYNC bit3 SBC ERR3 1Dh 1Eh b7 b6 b5 b4 b3 bit2 bit1 bit0 MODE 2 FORM 2 XFR SCT SCTINF SBC ERR2 SBC ERR1 SBC ERR0 SBCSTS SHTS BCS NOSY NC SUBQ ERR SBQSTS INCB LKS2 INCB LKS1 INCB LKS0 INC BLKS b2 b1 b0 SBQDT CHPCTL 1 PACK MODE 1Fh 20h 21h b7 b6 b5 b4 b3 b2 b1 22h 23h b7 b6 b5 b4 b3 b2 Reg. b1 24h b8 BFARA#-H b0 BFARA#-L b8 CSCTARA-H b0 CSCTARA-L b8 DLARA-H b7 b6 b5 b4 b3 b2 b1 b0 DLARA-L 27h b7 b6 b5 b4 b3 b2 b1 b0 TGTMIN 28h b7 b6 b5 b4 b3 b2 b1 b0 TGTSEC 29h b7 b6 b5 b4 b3 b2 b1 b0 TGTBLK 2Bh b23 b22 b21 b20 b19 b18 b17 b16 XFRCNT-H 2Ch b15 b14 b13 b12 b11 b10 b9 b8 XFRCNT-M 2Dh b7 b6 b5 b4 b3 b2 b1 b0 XFRCNT-L b8 XFRARA-H b1 b0 XFRARA-L XFR POS1 XFR POS0 XFRPOS 25h 26h 2Ah 2Eh 2Fh b7 b6 b5 b4 b3 b2 30h 31h 32h 33h b19 b18 b17 b16 HXFRC-H 34h b15 b14 b13 b12 b11 b10 b9 b8 HXFRC-M 35h b7 b6 b5 b4 b3 b2 b1 b0 HXFRC-L b19 b18 b17 b16 HADRC-H 36h 37h 38h b15 b14 b13 b12 b11 b10 b9 b8 HADRC-M 39h b7 b6 b5 b4 b3 b2 b1 b0 HADRC-L 3Ah Sub CPU read registers (2) – 85 – CXD1804AR Adr. bit7 bit6 bit5 bit4 3Bh bit3 bit2 bit1 bit0 Reg. b19 b18 b17 b16 SLADR-H 3Ch b15 b14 b13 b12 b11 b10 b9 b8 SLADR-M 3Dh b7 b6 b5 b4 b3 b2 b1 b0 SLADR-L b19 b18 b17 b16 CWADRC-H 3Eh 3Fh 40h b15 b14 b13 b12 b11 b10 b9 b8 CWADRC-M 41h b7 b6 b5 b4 b3 b2 b1 b0 CWADRC-L b19 b18 b17 b16 CRADRC-H 42h 43h 44h b15 b14 b13 b12 b11 b10 b9 b8 CRADRC-M 45h b7 b6 b5 b4 b3 b2 b1 b0 CRADRC-L b9 b8 BFBLKC-H b1 b0 BFBLKC-L b9 b8 BFFLRT-H 46h 47h b7 b6 b5 b4 b3 b2 48h 49h b7 b6 b5 b4 b3 b2 b1 b0 BFFLRT-L 4Ah b15 b14 b13 b12 b11 b10 b9 b8 TIMER-H 4Bh b7 b6 b5 b4 b3 b2 b1 b0 TIMER-L 4Ch b7 b6 b5 b4 b3 b2 b1 b0 TMRRSL b8 STARTARA-H b0 STARTARA-L 4Dh 4Eh b7 b6 b5 b4 b3 b2 Sub CPU read registers (3) – 86 – b1 CXD1804AR 3-1-2. CD-ROM decoder block write registers Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 00h CINT POL RAM SIZE1 RAM SIZE0 RAM8 BITW RAM 2CAS EXCK SEL CLK SEL1 CLK SEL0 CONFIG0 01h SW OPEN SYC NGC2 SYC NGC1 SYC NGC0 HWKR QDIS "L" SBC ECC1 SBC ECC0 CONFIG1 02h C2PO L1st LCH LOW BCH RED BCKL MD1 BCKL MD0 LSB 1st "L" BFSH DFSL DSPIF 03h b7 b6 b5 b4 b3 b2 b1 b0 RFINTVL 04h DSTB SL1 DSTB SL0 DIS XLAT XFR BYT1 XFR BYT0 "L" SBAI TMSL FAST EXCK DSPCTL 05h b7 b6 b5 b4 b3 b2 b1 b0 DSPCMD 06h "L" "L" "L" "L" "L" "L" "L" "L" 07h "L" "L" "L" "L" "L" "L" "L" "L" 08h "L" "L" "L" "L" "L" "L" "L" "L" 09h "L" "L" "L" "L" "L" "L" "L" "L" 0Ah "L" "L" "L" "L" "L" "L" "L" "L" 0Bh "L" "L" "L" "L" "L" "L" "L" "L" 0Ch "L" "L" "L" "L" "L" "L" "L" CDR DTEN 0Dh "L" "L" "L" "L" "L" "L" "L" "L" 0Eh "L" "L" "L" "L" "L" "L" "L" "L" 0Fh "L" "L" "L" "L" "L" "L" "L" "L" 10h "L" "L" "L" "L" "L" "L" "L" b8 LSTARA-H 11h b7 b6 b5 b4 b3 b2 b1 b0 LSTARA-L 12h "L" "L" "L" "L" "L" "L" "L" b8 LHADR-H 13h b7 b6 b5 b4 b3 b2 b1 b0 LHADR-L 14h 1024 XFR 512 XFR SYNC HEAD ER SBHE ADER USER DATA PARI TY AUTO XFR XFRFMT 0 15h ENBL KEFL BLKE FLSL ENBY TFBT BYTE FLSL ENSB CBT ALL SBC SBCE STS ZA SQEF XFRFMT 1 16h AUTO DIST MODE SEL FORM SEL "L" ENFM 2EDC MDBY TCTL EN DLA ATDL RNEW DECCTL 0 17h ENSB QRD "L" SEC CMD2 DEC CMD1 DEC CMD0 NTCR CT2 NTCR CT1 NTCR CT0 DECCTL 1 18h CHIP RST TGT MET INC TGT RPCO RTRG "L" CLDS PCMD DSPC MDXF DSPC MDLT CHPCTL 0 19h b7 b6 b5 b4 b3 b2 b1 b0 CPUBWDT 1Ah SUB FMSL "L" "L" "L" "L" MODE 2 FORM 2 XFR SCT SCTINF 1Bh b7 b6 b5 b4 b3 b2 b1 b0 BLKESTS 1Ch b7 b6 b5 b4 b3 b2 b1 b0 SBCESTS Sub CPU write registers (1) – 87 – Reg. CDRMOD CXD1804AR Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 1Dh "L" "L" "L" "L" "L" INCB LKS2 INCB LKS1 INCB LKS0 INC BLKS 1Eh b7 b6 b5 b4 b3 b2 b1 b0 BYTERSTS 1Fh "L" "L" "L" "L" "L" PACK MODE "L" "L" CHPCTL 1 20h "L" "L" "L" "L" "L" "L" "L" b8 BFARA#-H 21h b7 b6 b5 b4 b3 b2 b1 b0 BFARA#-L 22h "L" "L" "L" "L" "L" "L" "L" "L" 23h "L" "L" "L" "L" "L" "L" "L" "L" 24h "L" "L" "L" "L" "L" "L" "L" b8 DLARA-H 25h b7 b6 b5 b4 b3 b2 b1 b0 DLARA-L 26h "L" "L" "L" "L" "L" "L" "L" "L" 27h b7 b6 b5 b4 b3 b2 b1 b0 TGTMIN 28h b7 b6 b5 b4 b3 b2 b1 b0 TGTSEC 29h b7 b6 b5 b4 b3 b2 b1 b0 TGTBLK 2Ah "L" "L" "L" "L" "L" "L" "L" "L" 2Bh b23 b22 b21 b20 b19 b18 b17 b16 XFRCNT-H 2Ch b15 b14 b13 b12 b11 b10 b9 b8 XFRCNT-M 2Dh b7 b6 b5 b4 b3 b2 b1 b0 XFRCNT-L 2Eh "L" "L" "L" "L" "L" "L" "L" b8 XFRARA-H 2Fh b7 b6 b5 b4 b3 b2 b1 b0 XFRARA-L 30h "L" "L" "L" "L" "L" "L" "L" "L" 31h "L" "L" "L" "L" "L" "L" XFR POS1 XFR POS0 32h "L" "L" "L" "L" "L" "L" "L" "L" 33h "L" "L" "L" "L" b19 b18 b17 b16 HXFRC-H 34h b15 b14 b13 b12 b11 b10 b9 b8 HXFRC-M 35h b7 b6 b5 b4 b3 b2 b1 b0 HXFRC-L 36h "L" "L" "L" "L" "L" "L" "L" "L" 37h "L" "L" "L" "L" b19 b18 b17 b16 HADRC-H 38h b15 b14 b13 b12 b11 b10 b9 b8 HADRC-M 39h b7 b6 b5 b4 b3 b2 b1 b0 HADRC-L 3Ah "L" "L" "L" "L" "L" "L" "L" "L" 3Bh "L" "L" "L" "L" b19 b18 b17 b16 SLADR-H 3Ch b15 b14 b13 b12 b11 b10 b9 b8 SLADR-M 3Dh b7 b6 b5 b4 b3 b2 b1 b0 SLADR-L 3Eh "L" "L" "L" "L" "L" "L" "L" "L" 3Fh "L" "L" "L" "L" b19 b18 b17 b16 Sub CPU write registers (2) – 88 – XFRPOS CWADRC-H CXD1804AR Adr. bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reg. 40h b15 b14 b13 b12 b11 b10 b9 b8 CWADRC-M 41h b7 b6 b5 b4 b3 b2 b1 b0 CWADRC-L 42h "L" "L" "L" "L" "L" "L" "L" "L" 43h "L" "L" "L" "L" b19 b18 b17 b16 CRADRC-H 44h b15 b14 b13 b12 b11 b10 b9 b8 CRADRC-M 45h b7 b6 b5 b4 b3 b2 b1 b0 CRADRC-L 46h "L" "L" "L" "L" "L" "L" b9 b8 BFBLKC-H 47h b7 b6 b5 b4 b3 b2 b1 b0 BFBLKC-L 48h "L" "L" "L" "L" "L" "L" b9 b8 BFFLRT-H 49h b7 b6 b5 b4 b3 b2 b1 b0 BFFLRT-L 4Ah b15 b14 b13 b12 b11 b10 b9 b8 TIMER-H 4Bh b7 b6 b5 b4 b3 b2 b1 b0 TIMER-L 4Ch b7 b6 b5 b4 b3 b2 b1 b0 TMRRSL Sub CPU write registers (3) – 89 – CXD1804AR 3-2. List of SCSI Controller Block Registers 3-2-1. SCSI controller block read registers Adr. bit7 bit6 bit5 50h MON RST MON DBP bit4 bit3 bit2 TAPE MODE TBC ZERO bit1 bit0 CMDI NPRG Reg. SCSTS 51h Reserved 52h Reserved 53h Reserved 54h MON BSY 55h FIFE MPTY MON SEL MON MSG MON CD MON IO MON REQ MON ACK MON ATN SCSCBMON FIF FULL FIF CNT3 FIF CNT2 FIF CNT1 FIF CNT0 SCFIF STS 56h Reserved 57h B07 B06 B05 B04 B03 B02 B01 B00 SCDATA 58h "L" "L" "L" B04 B03 B02 B01 B00 SCSXFRC 59h Reserved 5Ah Reserved 5Bh SYXF RPD3 SYXF RPD2 SYXF RPD1 SYXF RPD0 SYXF ROF3 SYXF ROF2 SYXF ROF1 SYXF ROF0 SCSYNCTL 5Ch Reserved 5Dh Reserved 5Eh CTL BSY CTL SEL CTL MSG CTL CD CTL IO CTL REQ CTL ACK 5Fh CTL ATN SCSCBCTL Reserved List of SCSI2 controller block read registers (1) – 90 – CXD1804AR Adr. bit7 bit6 60h 61h FAST SCSI HSXF RSPE bit5 bit4 bit3 CDBS IZDF ANEG DATA ANEG RQAK HSXF RAT HSL SPE RSL RTC3 bit2 RSLT OUT7 RSLT OUT6 RSLT OUT5 RSLT OUT4 RSLT OUT3 bit0 RSL RTC2 RSLT OUT2 RSL RTC1 RSL RTC0 SCCONF1 IDAS SIGN IDUN ASGN SCCONF2 RSLT OUT1 RSLT OUT0 SCRSLTOT 64h 65h Reg. SCCONF0 62h 63h bit1 Reserved SEL ID2 SEL ID1 SEL ID0 SELI DINV OWN ID2 OWN ID1 OWN ID0 SCID 66h Reserved 67h Reserved 68h Reserved 69h GP7 B1 GP7 B0 GP6 B1 GP6 B0 GP4 B1 GP4 B0 GP3 B1 GP3 B0 SCCDBSIZ CDBSIZDF = 0 69h GP7 B1 GP7 B0 GP6D B1 GP6D B0 GP6C B1 GP6C B0 GP43 B1 GP43 B0 SCCDBSIZ CDBSIZDF = 1 6Ah USTS B7 USTS B6 USTS B5 USTS B4 USTS B3 USTS B2 USTS B1 USTS B0 SC USTS STDS CPRV 6Bh SCSTCONF 6Ch RSLM SG7 RSLM SG6 RSLM SG5 RSLM SG4 RSLM SG3 RSLM SG2 RSLM SG1 RSLM SG0 SCSTRSLM 6Dh TIOS TS7 TIOS TS6 TIOS TS5 TIOS TS4 TIOS TS3 TIOS TS2 TIOS TS1 TIOS TS0 SCSTTIOS 6Eh TIOM SG7 TIOM SG6 TIOM SG5 TIOM SG4 TIOM SG3 TIOM SG2 TIOM SG1 TIOM SG0 SCSTTIOM 6Fh Reserved List of SCSI2 controller block read registers (2) – 91 – CXD1804AR 3-2-2. SCSI controller block write registers Adr. bit7 bit6 50h CAT1 CAT0 bit5 bit4 bit3 bit2 bit1 bit0 Reg. B05 B04 B03 B02 B01 B00 SCCMD 51h Reserved 52h Reserved 53h Reserved 54h Reserved 55h Reserved 56h Reserved 57h B07 B06 B05 B04 B03 B02 B01 B00 SCDATA 58h B07 B06 B05 B04 B03 B02 B01 B00 SCSXFRC 59h Reserved 5Ah Reserved 5Bh SYXF RPD3 SYXF RPD2 SYXF RPD1 SYXF RPD0 SYXF ROF3 SYXF ROF2 SYXF ROF1 SYXF ROF0 SCSYNCTL 5Ch Reserved 5Dh Reserved 5Eh CTL BSY CTL SEL CTL MSG CTL CD CTL IO CTL REQ CTL ACK 5Fh CTL ATN SCSCBCTL Reserved List of SCSI2 controller block write registers (1) – 92 – CXD1804AR Adr. bit7 bit6 60h 61h FAST SCSI HSXF RSPE bit5 bit4 bit3 CDBS IZDF ANEG DATA ANEG RQAK HSXF RAT SPAR ENB RSL RTC3 bit2 RSLT OUT7 RSLT OUT6 RSLT OUT5 RSLT OUT4 RSLT OUT3 bit0 RSL RTC2 RSLT OUT2 RSL RTC1 RSL RTC0 SCCONF1 IDAS SIGN IDUN ASGN SCCONF2 RSLT OUT1 RSLT OUT0 SCRSLTOT 64h 65h Reg. SCCONF0 62h 63h bit1 Reserved SEL ID2 SEL ID1 SEL ID0 OWN ID2 OWN ID1 OWN ID0 SCID 66h Reserved 67h Reserved 68h Reserved 69h GP7 B1 GP7 B0 GP6 B1 GP6 B0 GP4 B1 GP4 B0 GP3 B1 GP3 B0 SCCDBSIZ CDBSIZDF = 0 69h GP7 B1 GP7 B0 GP6D B1 GP6D B0 GP6C B1 GP6C B0 GP43 B1 GP43 B0 SCCDBSIZ CDBSIZDF = 1 Reserved 6Ah STDS CPRV 6Bh SCSTCONF 6Ch RSLM SG7 RSLM SG6 RSLM SG5 RSLM SG4 RSLM SG3 RSLM SG2 RSLM SG1 RSLM SG0 SCSTRSLM 6Dh TIOS TS7 TIOS TS6 TIOS TS5 TIOS TS4 TIOS TS3 TIOS TS2 TIOS TS1 TIOS TS0 SCSTTIOS 6Eh TIOM SG7 TIOM SG6 TIOM SG5 TIOM SG4 TIOM SG3 TIOM SG2 TIOM SG1 TIOM SG0 SCSTTIOM 6Fh Reserved List of SCSI2 controller block write registers (2) – 93 – CXD1804AR 3-3. List of Common Registers 3-3-1. Common read registers Adr. bit7 bit6 bit5 bit4 bit3 70h DEC INT DEC TOUT DRV OVRN CRST END CDR INT bit2 71h 72h FUNC CMPL CMD IGNR SCSI RST ATN COND SCSI PERR SLW ATN 73h 74h DEC INT DEC TOUT DRV OVRN CRCT END FUNC CMPL DIS CNCT SCSI RST ATN COND SCSI PERR SLW ATN 77h SCSI REL 78h 79h 7Ah 7Bh 7Ch 7Dh 7Eh 7Fh – 94 – bit0 Reg. SHT SYNC INTSTS0 TIME R SUBC SYNC INTSTS1 SLWO ATN RSL FAIL INTSTS2 SCAM INIF SCAN SL INTSTS3 SHT SYNC INTEN0 TIME R SUBC SYNC INTEN1 SLWO ATN RSL FAIL INTEN2 SCAN INIF SCAM SL INTEN3 SCTM REL DEC REL INTSRC CDR INT 75h 76h bit1 CXD1804AR 3-3-2. Common write registers Adr. bit7 bit6 bit5 bit4 bit3 70h DEC INT DEC TOUT DRV OVRN CRST END CDR INT bit2 71h 72h FUNC CMPL CMD IGNR SCSI RST ATN COND SCSI PERR SLW ATN 73h 74h DEC INT DEC TOUT DRV OVRN CRCT END FUNC CMPL CMD IGNR SCSI RST ATN COND SCSI PERR 77h 78h 79h 7Ah 7Bh 7Ch 7Dh 7Eh 7Fh – 95 – SLW ATN bit0 Reg. SHT SYNC CLRINT0 TIME R SUBC SYNC CLRINT1 SLWO ATN RSL FAIL CLRINT2 SCAM INIF SCAN SL CLRINT3 SHT SYNC INTEN0 TIME R SUBC SYNC INTEN1 SLWO ATN RSL FAIL INTEN2 SCAN INIF SCAM SL INTEN3 CDR INT 75h 76h bit1 CXD1804AR 3-4. Register Reset Conditions XRST: XRST pin CRST: bit 7 of the CHPCTL0 register (0Dh) SXRS: SXRS pin RCMD: Chip reset command 3-4-1. CD-ROM decoder block register reset conditions (1) Sub CPU write registers Reg. Adr. XRST CRST XRES RCMD Bit 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 O CONFIG0 00h O CONFIG1 01h O 0 0 1 0 x x 0 1 DSPIF 02h O 0 0 1 0 1 0 x x RFINTVL 03h DSPCTL 04h O O 0 0 0 1 1 x x x DSPCMD 05h O O 0 0 0 0 0 0 0 0 LSTARA-H 10h O O x x x x x x x 0 LSTARA-L 11h O O 0 0 0 0 0 0 0 0 LHADR-H 12h O O x x x x x x x 0 LHADR-L 13h O O 0 0 0 0 0 0 0 0 XFRFMT0 14h O XFRFMT1 15h O O 0 0 0 0 0 0 0 0 DECCTL0 16h O O 1 0 0 x 0 1 0 1 DECCTL1 17h O O 0 0 0 0 0 x 0 0 CHPCTL0 18h O O 0 0 0 0 x 0 0 0 CPUBWDT 19h O O 0 0 0 0 0 0 0 0 SCTINF 1Ah O O x x x x x 0 0 0 BLKESTS 1Bh O O 0 0 0 0 0 0 0 0 SBCESTS 1Ch O O 0 0 0 0 0 0 0 0 INCBLKS 1Dh O O x x x x x 0 0 1 BYTERSTS 1Eh O O 0 0 0 0 0 0 0 0 CHPCTL1 1Fh O O x x x x x 1 x x BFARA-H 20h O O x x x x x x x 0 BFARA-L 21h O O 0 0 0 0 0 0 0 0 DLARA-H 24h O O x x x x x x x 0 DLARA-L 25h O O 0 0 0 0 0 0 0 0 TGTMIN 27h O O 0 0 0 0 0 0 0 0 TGTSEC 28h O O 0 0 0 0 0 0 0 0 TGTBLK 29h O O 0 0 0 0 0 0 0 0 XFRCNT-H 2Bh O O 0 0 0 0 0 0 0 0 XFRCNT-M 2Ch O O 0 0 0 0 0 0 0 0 x x x x x x x x 0 0 0 0 0 0 0 1 – 96 – CXD1804AR Reg. Adr. XRST CRST XRES RCMD Bit 7 6 5 4 3 2 1 0 XFRCNT-L 2Dh O O 0 0 0 0 0 0 0 0 XFRARA-H 2Eh O O x x x x x x x 0 XFRARA-L 2Fh O O 0 0 0 0 0 0 0 0 XFRPOS 31h O O x x x x x x 0 0 HXFRC-H 33h O O x x x x 0 0 0 0 HXFRC-M 34h O O 0 0 0 0 0 0 0 0 HXFRC-L 35h O O 0 0 0 0 0 0 0 0 HADRC-H 37h O O x x x x 0 0 0 0 HADRC-M 38h O O 0 0 0 0 0 0 0 0 HADRC-L 39h O O 0 0 0 0 0 0 0 0 SLADR-H 3Bh O O x x x x 0 0 0 0 SLADR-M 3Ch O O 0 0 0 0 0 0 0 0 SLADR-L 3Dh O O 0 0 0 0 0 0 0 0 CWADRC-H 3Fh O O x x x x 0 0 0 0 CWADRC-M 40h O O 0 0 0 0 0 0 0 0 CWADRC-L 41h O O 0 0 0 0 0 0 0 0 CRADRC-H 43h O O x x x x 0 0 0 0 CRADRC-M 44h O O 0 0 0 0 0 0 0 0 CRADRC-L 45h O O 0 0 0 0 0 0 0 0 BFBLKC-H 46h O O x x x x x x 0 0 BFBLKC-L 47h O O 0 0 0 0 0 0 0 0 BFFLRT-H 48h O O x x x x x x 0 0 BFFLRT-L 49h O O 0 0 0 0 0 0 0 1 TIMER-H 4Ah O O 0 0 0 0 0 0 0 0 TIMER-L 4Bh O O 0 0 0 0 0 0 0 0 TMRRSL 4Ch O O 1 1 1 1 1 0 1 0 CLRINT0 70h O O 0 0 0 0 x x x x CLRINT1 71h O O x x x x x x 0 0 INTEN0 74h O O 0 0 0 0 x x x x INTEN1 75h O O x x x x x x 0 0 – 97 – CXD1804AR (2) Sub CPU read registers Reg. Adr. XRST CRST XRES RCMD Bit 7 6 5 4 3 2 1 0 RAWMIN 00h O O 0 0 0 0 0 0 0 0 RAWSEC 01h O O 0 0 0 0 0 0 0 0 RAWBLK 02h O O 0 0 0 0 0 0 0 0 RAWMD 03h O O 0 0 0 0 0 0 0 0 BFMIN 04h O O 0 0 0 0 0 0 0 0 BFSEC 05h O O 0 0 0 0 0 0 0 0 BFBLK 06h O O 0 0 0 0 0 0 0 0 BFMD 07h O O 0 0 0 0 0 0 0 0 BFFILE 08h O O 0 0 0 0 0 0 0 0 BFCHAN 09h O O 0 0 0 0 0 0 0 0 BFSUBM 0AH O O 0 0 0 0 0 0 0 0 BFDTYP 0Bh O O 0 0 0 0 0 0 0 0 RAWHDRFLG 0Ch O O 0 0 0 0 x x x x BFHDRFLG 0Dh O O 0 0 0 0 0 0 0 0 DECSTS0 0Eh O O 0 0 0 0 0 0 0 0 DECSTS1 0Fh O O x x x 0 0 0 0 0 LSTARA-H 10h O O x x x x x x x 0 LSTARA-L 11h O O 0 0 0 0 0 0 0 0 LHADR-H 12h O O x x x x x x x 0 LHADR-L 13h O O 0 0 0 0 0 0 0 0 XFRFMT0 14h XFRFMT1 15h DECCTL0 0 0 0 0 0 0 0 ? O O 0 0 0 0 0 0 0 x O O 0 0 0 0 0 0 0 0 16h O O 1 0 0 x 0 1 0 1 DECCTL1 17h O O 0 0 0 0 0 x 0 0 XFRSTS 18h O O 0 0 0 x 0 x 1 0 CPUBRDT 19h SCTINF 1Ah O O x x x x x 0 0 0 SBCSTS 1Bh O O x x x x x x x x SBQSTS 1Ch O O x x x x x 0 0 0 INCBLKS 1Dh O O x x x x x 0 0 1 SBQDT 1Eh CHPCTL1 1Fh O O x x x x x 1 x x BFARA-H 20h O O x x x x x x x 0 BFARA-L 21h O O 0 0 0 0 0 0 0 0 CSCTARA-H 22h O O x x x x x x x 0 CSCTARA-L 23h O O 0 0 0 0 0 0 0 0 x x x x x x x x x x x x x x x x – 98 – CXD1804AR Reg. Adr. XRST CRST XRES RCMD Bit 7 6 5 4 3 2 1 0 DLARA-H 24h O O x x x x x x x 0 DLARA-L 25h O O 0 0 0 0 0 0 0 0 TGTMIN 27h O O 0 0 0 0 0 0 0 0 TGTSEC 28h O O 0 0 0 0 0 0 0 0 TGTBLK 29h O O 0 0 0 0 0 0 0 0 XFRCNT-H 2Bh O O 0 0 0 0 0 0 0 0 XFRCNT-M 2Ch O O 0 0 0 0 0 0 0 0 XFRCNT-L 2Dh O O 0 0 0 0 0 0 0 0 XFRARA-H 2Eh O O x x x x x x x 0 XFRARA-L 2Fh O O 0 0 0 0 0 0 0 0 XFRPOS 31h O O x x x x x x 0 0 HXFRC-H 33h O O x x x x 0 0 0 0 HXFRC-M 34h O O 0 0 0 0 0 0 0 0 HXFRC-L 35h O O 0 0 0 0 0 0 0 0 HADRC-H 37h O O x x x x 0 0 0 0 HADRC-M 38h O O 0 0 0 0 0 0 0 0 HADRC-L 39h O O 0 0 0 0 0 0 0 0 SLADR-H 3Bh O O x x x x 0 0 0 0 SLADR-M 3Ch O O 0 0 0 0 0 0 0 0 SLADR-L 3Dh O O 0 0 0 0 0 0 0 0 CWADRC-H 3Fh O O x x x x 0 0 0 0 CWADRC-M 40h O O 0 0 0 0 0 0 0 0 CWADRC-L 41h O O 0 0 0 0 0 0 0 0 CRADRC-H 43h O O x x x x 0 0 0 0 CRADRC-M 44h O O 0 0 0 0 0 0 0 0 CRADRC-L 45h O O 0 0 0 0 0 0 0 0 BFBLKC-H 46h O O x x x x x x 0 0 BFBLKC-L 47h O O 0 0 0 0 0 0 0 0 BFFLRT-H 48h O O x x x x x x 0 0 BFFLRT-L 49h O O 0 0 0 0 0 0 0 1 TIMER-H 4Ah O O 0 0 0 0 0 0 0 0 TIMER-L 4Bh O O 0 0 0 0 0 0 0 0 TMRRSL 4Ch O O 1 1 1 1 1 0 1 0 STARTARA-H 4Eh O O x x x x x x x 0 STARTARA-L 4Fh O O 0 0 0 0 0 0 0 0 INTSTS0 70h O O 0 0 0 0 x x x x INTSTS1 71h O O x x x x x x 0 0 INTEN0 74h O O 0 0 0 0 x x x x – 99 – CXD1804AR Reg. Adr. XRST CRST XRES RCMD Bit 7 6 5 4 3 2 1 0 INTEN1 75h O O x x x x x x 0 0 INTSRC 78h O O x x x x x x 0 0 3-4-2. SCSI2 control block register reset conditions (1) Sub CPU write registers Reg. Adr. XRST CRST XSRS RCMD Bit 7 6 5 4 3 2 1 0 SCSTS 50h O O x x x x 0 1 x x SCSCBMON 54h O O x x x x x x x x SCFIFSTS 55h O O 1 0 0 0 0 0 0 0 SCDATA 57h O O x x x x x x x x SCSXFRC 58h O O x x x 0 0 0 0 0 SCSYNCTL 5Bh O O 0 0 0 0 0 0 0 0 SCSCBCTL 5Eh O O 0 0 0 0 0 0 0 0 SCCONF0 60h O SCCOCF1 61h O SCCOCF2 62h O SCRSLTOT 63h O O 0 0 0 0 0 0 0 0 SCID 65h O O 0 0 0 0 x 0 0 0 SCCDBSIZ 69h O O 0 0 0 0 0 0 0 0 SCUSTS 6Ah O O x x x x x x x x SCSTCONF 6Bh O O x x x x x 0 0 0 SCSTRSLM 6Ch O O 0 0 0 0 0 0 0 0 SCSTTIOS 6Dh O O 0 0 0 0 0 0 0 0 SCSTTIOM 6Eh O O 0 0 0 0 0 0 0 0 INTSTS2 72h O 0 0 0 0 0 0 0 0 INTSTS3 73h O x x x x x x 0 0 INTEN2 76h O O 0 0 0 0 0 0 0 0 INTEN3 77h O O x x x x x x 0 0 0 0 0 0 0 0 0 0 O x x 0 0 0 x x x x x x x x x 0 0 O – 100 – CXD1804AR (2) Sub CPU read registers Reg. Adr. XRST CRST XSRS RCMD Bit 7 6 5 4 3 2 1 0 SCCMD 50h O O 0 0 0 0 0 0 0 0 SCDATA 57h O O x x x x x x x x SCSXFRC 58h O O x x x 0 0 0 0 0 SCSYNCTL 5Bh O O x x x x x x x x SCSCBCTL 5Eh O O x x x x x x x x SCCONF0 60h O SCCONF1 61h O SCCONF2 62h O SCRSLTOT 63h O O 0 0 0 0 0 0 0 0 SCID 65h O O 0 0 0 x x 0 0 0 SCCDBSIZ 69h O O 0 0 0 0 0 0 0 0 SCSTCONF 6Bh O O x x x x x 0 0 0 SCSTRSLM 6Ch O O 0 0 0 0 0 0 0 0 SCSTTIOS 6Dh O O 0 0 0 0 0 0 0 0 SCSTTIOM 6Eh O O 0 0 0 0 0 0 0 0 CLRINT2 72h O 0 0 0 0 0 0 0 0 CLRINT3 73h O x x x x x x 0 0 INTEN2 76h O O 0 0 0 0 0 0 0 0 INTEN3 77h O O x x x x x x 0 0 x x 0 0 0 x x x O 0 0 0 0 0 0 0 0 x x x x x x 0 0 – 101 – CXD1804AR [4] Appendix B 4-1. Summary of SCSI Controller Block Commands CXD1804AR/SCSI2 core block command set CAT1 CAT0 CMD5 CMD4 CMD3 CMD2 CMD1 CMD0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 Description NOP CHIP Reset Flush FIFO Assert SCSI Control Deasert SCSI Control Assert SCSI Data Deasert SCSI Data Enable Selection Disable Selection CAT1 CAT0 CMD5 CMD4 CMD3 CMD2 CMD1 CMD0 0 0 0 0 1 1 1 1 CAT1 CAT0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BUF ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 Description Reselect and Send Message (s) Initiate SCAM Reselect, Send Message (s) and Receive Data Reselect, Send Message (s) and Send Data SUB CMD3 CMD2 CMD1 CMD0 Description ∗ 0 0 0 0 Receive Data ∗ 0 0 0 1 Send Data ∗ 0 0 1 0 Reserved ∗ 0 0 1 1 Reserved ∗ 0 1 0 0 Reseive Command ∗ 0 1 0 1 Send Status ∗ 0 1 1 0 Receive Message ∗ 0 1 1 1 Send Message 0 1 0 0 0 Disconnect 0 1 0 0 1 Send Message (s) and Disconnect 0 1 0 1 0 Terminate I/O and bus free 0 1 0 1 1 Terminate I/O and link 0 1 1 0 0 Receive Command Sequence CAT1 CAT0 CMD5 CMD4 CMD3 CMD2 CMD1 CMD0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 Description Stream Abort Stream and Stop Stream and Bus Free Stream and Link Stream Pause ∗ Either "1" or "0" can be written. However, if the BUF bit is "1", "0" must be written for the SUB bit. States which allow commands to be executed are limited by category. CAT1 CAT0 Description 0 0 Can be executed in all states 0 1 Can be executed only in the Disconnect status 1 0 Can be executed only during the target mode 1 1 Stream commands – 102 – CXD1804AR Package Outline Unit: mm 144PIN LQFP (PLASTIC) 22.0 ± 0.2 1.7 MAX 20.0 ± 0.1 1.4 ± 0.1 73 108 109 72 B A 37 144 1 36 0.22 ± 0.05 0.5 0.08 M 0.1 S S 0.1 ± 0.05 DETAIL A (0.125) (0.2) DETAIL B SONY CODE LQFP-144P-L01 EIAJ CODE LQFP144-P-2020-A JEDEC CODE 0.145 ± 0.03 0° to 10° 0.5 ± 0.15 (21.0) 0.22 ± 0.05 PACKAGE STRUCTURE PACKAGE MATERIAL EPOXY RESIN LEAD TREATMENT SOLDER PLATING LEAD MATERIAL 42 / COPPER ALLOY PACKAGE WEIGHT 1.3 g – 103 – S