• High performance CD-ROM and CD-R interface logic
• 128 pin QFP package.
1.2Interface logic (CD-ROM operation)
• Full 8× speed hardware operation
• Block decoder
• Sector sequencer
• CRC checking of Mode 1 and Mode 2, Form 1 sectors
• 212 ms watch-dog timer
• Sub-code interface with synchronization
• C-flag interface for absolute time stamp.
1.3Hardware third-level error correction
• Third-level correction provides superior performance in
unfavourable conditions
• Full hardware error correction to reduce microcontroller
overhead
• Corrections are automatically written to the DRAM
frame buffer.
1.4Interface logic (CD-R operation)
• Block encoder (using a modified CDB2).
1.5DRAM buffer controller (256 kbytes × 8,
1 Mbyte × 8, 4 Mbytes × 8)
• DRAM buffer manager
• Ten level arbitration logic
• Utilizes low cost 70 ns DRAMs
• Page mode DRAM access for high-speed error
correction and host interface data transfers
• Data organization by 3 kbytes frames.
1.6Additional product support
SAA7390
• Dedicated Serial Peripheral Interface (SPI)
• Third level error correction and encoding
• 80C32 microcontroller interface
• 53CF90 or 53CF92A/B fast SCSI processor interface
(may also use ATAPI processor).
2GENERAL DESCRIPTION
The SAA7390 is a high integration ASIC that incorporates
all of the logic necessary to connect a CD-60 based
decoder to a SCSI or ATAPI host. It also supports a data
path from the host to the CDCEP (compact disc encoder)
for CD-R applications. An 80C32 microcontroller and a
53CF94/92A (or an ATAPI interface device) are required
to provide the full block encode/decode functions. The
following functions are supported:
• Input clock doubler
• Block encoder (using a modified CDB2)
• Block decoder
• CRC checking of Mode 1 and Mode 2, Form 1 sectors
• Red book audio pass through to SCSI or ATAPI
• Sub-code and Q-channel support
• Dedicated S2B interface UART
• Dedicated SPI interface UART
• Up to 4 Mbytes DRAM buffer manager
• Third-level error correction and encoding
• Automatic storage of audio and data
• 80C32 microcontroller interface
• 53CF90 or 53CF92A/B fast SCSI or Wapiti ATAPI
processor interface.
The SAA7390 uses a 33.8688 MHz clock and is capable
of accepting data at eight times (n = 8 or 1.4 Mbytes/s) the
normal CD-ROM data rate. The minimum host burst rate
capability of the SAA7390 is 5 Mbytes/s.
Third level error correction hardware is included to
improve the correction efficiency of the system. The buffer
manager hardware utilizes a ten-level arbitration unit and
can stop the clock to the static microcontroller to emulate
a wait condition when necessary. The host interface is
capable of burst rates to 16.9 Mbytes/s.
• Input clock doubler
• All control registers mapped into 80C32 special function
memory space
• Red book audio pass through to host interface
• Sub-code and Q-channel support
1996 Jul 023
Philips SemiconductorsPreliminary specification
High performance Compact
SAA7390
Disc-Recordable (CD-R) controller
The SAA7390 comprises four major functional blocks:
• The front-end block connects to the external CD-60
based decoder and fully processes the incoming data
stream
• The buffer manager block provides the address
generation and timing control for the external DRAMs
• The ECC block performs the error correction functions in
hardware on the data stored in the DRAM buffer.
• The block encoder function (realized via a modified
CDB2) serializes the data from the buffer, appends the
sync pattern, header, sub-header, third level ECC parity
and EDC bytes as necessary, performs the required
scrambling and outputs them to the CDCEP using a
special data clock (98 clock cycles per word selection
period).
3QUICK REFERENCE DATA
SYMBOLPARAMETERMIN.TYP.MAX.UNIT
V
DD
T
amb
T
stg
digital supply voltage4.55.05.5V
operating ambient temperature0−70°C
storage temperature−55−+150°C
High performance Compact
Disc-Recordable (CD-R) controller
5BLOCK DIAGRAM
handbook, full pagewidth
datasubcode
CD
DECODER
BASIC
ENGINE
DATA
CONVERTER
AND SUB-CODE
UART
data
subcode
C-flag
WRITE I/F
LAYERED
CORRECTOR
SAA7390
BUFFER MANAGER
ERROR
256K × 8 to 4M × 8
DRAM BUFFER
ENCODE
MICROCONTROLLER INTERFACE
BUFFER
MAPPER
SPI UART
GENERIC
EXTERNAL
INTERFACE
S2B UART
SAA7390
SCSI
or
ATAPI
interface
S2B
interface
MGE518
80C32 MICROCONTROLLER
128K × 8 ROM
SPI
interface
Fig.1 Block diagram (simplified).
6PINNING
All input and bidirectional signals are TTL level with Schmitt-trigger logic, with the exception of OSCIN. All output
signals are TTL levels unless otherwise stated. (PD = internal pull-down; PU = internal pull-up).
SYMBOLPINI/OTYPEDESCRIPTION
DA01ODRAM address bus; bit DA0
DA12ODRAM address bus; bit DA1
DA23ODRAM address bus; bit DA2
V
SS1
4−ground 1
DA35ODRAM address bus; bit DA3
DA46ODRAM address bus; bit DA4
DA57ODRAM address bus; bit DA5
V
SS2
8−ground 2
DA69ODRAM address bus; bit DA6
1996 Jul 025
Philips SemiconductorsPreliminary specification
High performance Compact
SAA7390
Disc-Recordable (CD-R) controller
SYMBOLPINI/OTYPEDESCRIPTION
DA710ODRAM address bus; bit DA7
V
DD1
DA812ODRAM address bus; bit DA8
DA913ODRAM address bus; bit DA9
DA1014ODRAM address bus; bit DA10
RAS15ODRAM row address section; active LOW
CAS16ODRAM column address selection; active LOW
DWR17ODRAM write; active LOW
DOE18ODRAM output enable; active LOW
DD019I/OPDDRAM data bus; bit DD0
V
DD2
DD121I/OPDDRAM data bus; bit DD1
DD222I/OPDDRAM data bus; bit DD2
DD323I/OPDDRAM data bus; bit DD3
DD424I/OPDDRAM data bus; bit DD4
V
SS3
DD526I/OPDDRAM data bus; bit DD5
DD627I/OPDDRAM data bus; bit DD6
DD728I/OPDDRAM data bus; bit DD7
COM_IN29Iserial data in from basic engine
COM_OUT30Oserial data out to basic engine
COM_CLK31Oserial data clock
COM_ACK32Iserial data acknowledge
TRAYSW33IPUactive LOW when tray is in
EJECT34IPUopens tray; active LOW
LQDATA35Olatched qualified data
LWCLK36Olatched word clock
V
DD3
LED38OCMOS; 24 mA panel LED; active LOW; open drain; 24 mA (min.) sink capability
V
SS4
SCLK40Oaudio data clock
V
SS5
SYSRES42Osystem reset; active HIGH
SYSRES43Osystem reset; active LOW
V
DD4
GPIO345I/OPDgeneral purpose input/output 3
GPIO446I/OPDgeneral purpose input/output 4
VOLUP47IPUvolume up; active LOW
VOLDN48IPUvolume down; active LOW
UC_AD049I/Omicroprocessor multiplexed address/data bus; bit UC_AD0
UC_AD150I/Omicroprocessor multiplexed address/data bus; bit UC_AD1
11−power supply 1
20−power supply 2
25−ground 3
37−power supply 3
39−ground 4
41−ground 5
44−power supply 4
1996 Jul 026
Philips SemiconductorsPreliminary specification
High performance Compact
SAA7390
Disc-Recordable (CD-R) controller
SYMBOLPINI/OTYPEDESCRIPTION
UC_AD251I/Omicroprocessor multiplexed address/data bus; bit UC_AD2
UC_AD352I/Omicroprocessor multiplexed address/data bus; bit UC_AD3
V
SS6
UC_AD454I/Omicroprocessor multiplexed address/data bus; bit UC_AD4
UC_AD555I/Omicroprocessor multiplexed address/data bus; bit UC_AD5
UC_AD656I/Omicroprocessor multiplexed address/data bus; bit UC_AD6
UC_AD757I/Omicroprocessor multiplexed address/data bus; bit UC_AD7
V
DD5
UC_LA059Olatched lower address; bit UC_LA0
UC_LA160Olatched lower address; bit UC_LA1
UC_LA261Olatched lower address; bit UC_LA2
V
SS7
UC_LA363Olatched lower address; bit UC_LA3
UC_LA464Olatched lower address; bit UC_LA4
UC_LA565Olatched lower address; bit UC_LA5
UC_LA666Olatched lower address; bit UC_LA6
UC_LA767Olatched lower address; bit UC_LA7
V
SS8
PCLK69O33.8688 MHz microprocessor clock
V
DD6
ALE71Iaddress latch enable
UC_WR72Iwrite enable
UC_RD73Iread enable
INT74OCMOSinterrupt to microcontroller; active LOW; open drain
UC_A875Iupper address; bit UC_A8
UC_A976Iupper address; bit UC_A9
UC_A1077Iupper address; bit UC_A10
SYS_SYNC78Isystem synchronization from basic engine
UC_A1179Iupper address; bit UC_A11
UC_A1280Iupper address; bit UC_A12
UC_A1381Iupper address; bit UC_A13
COM_SYNC82Icommunication synchronization from basic engine
UC_A1483Iupper address; bit UC_A14
UC_A1584Iupper address; bit UC_A15
SD085I/Ointernal data bus; bit SD0
V
DD6
SD187I/Ointernal data bus; bit SD1
SD288I/Ointernal data bus; bit SD2
V
SS9
SD390I/Ointernal data bus; bit SD3
SD491I/Ointernal data bus; bit SD4
53−ground 6
58−power supply 5
62−ground 7
68−ground 8
70−power supply 6
86−power supply 6
89−ground 9
1996 Jul 027
Philips SemiconductorsPreliminary specification
High performance Compact
SAA7390
Disc-Recordable (CD-R) controller
SYMBOLPINI/OTYPEDESCRIPTION
SD592I/Ointernal data bus; bit SD5
SD693I/Ointernal data bus; bit SD6
SD794I/Ointernal data bus; bit SD7
V
SS10
DREQ96IPDDMA request
DACK97ODMA acknowledge; active LOW
HOSTRD98Oread enable; active LOW
HOSTWR99Owrite enable; active LOW
HOSTSEL100Ochip select; active LOW
CSAB101Iword strobe for write data
CCLAB102Iclock for write data
CDAAB103Owrite data stream
RXS2B104IPUreceive data
TXS2B105Otransmit data
CPR106Oready to accept data; active LOW
SCSIRST107Ireset from SCSI bus; active LOW
POR108Ipower-on reset; active LOW
TCL_GPIO1109I/OPDgeneral purpose input/output 1 (also used as test-mode clock)
SPR110Iready to send data; active LOW
TDA_GPIO2111I/OPDgeneral purpose input/output 2 (also used as test-mode data)
HFD112Ilaser on and focused status; active LOW
KILL113IPUmute audio; active LOW
V
SS11
MCOUT115Omotor control output from PWM
MCIN116IPDmotor control input from decoder
RXSUB117IPUsub-code input
CFLAG118IPUC1 and C2 status
V
SS12
OSCIN120Iinput clock from decoder
V
DD7
CLAB122Iclock input
DAAB123Idata input
WSAB124Iword strobe input
EFAB125Ierror flags
V
SS13
CLK34127O33.8688 MHz output clock
V
DD8
95−ground 10
114−ground 11
119−ground 12
121−power supply 7
126−ground 13
128−power supply 8
1996 Jul 028
Philips SemiconductorsPreliminary specification
High performance Compact
Disc-Recordable (CD-R) controller
High performance Compact
Disc-Recordable (CD-R) controller
left
output
AUDIO
TDA8425
PROCESSOR
RAM
output
DAC
AND
CD-ROM
ENCODER
right
TDA1545A
SAA7390
DECODER
ATAPI
interface
WAPITI
53CF90
SCSI-2
interface
53CF92A
53CF92B
ATAPI/SCSI
INTERFACE
80C32
MICRO
CD-ROM
SAA7390
MGE519
book, full pagewidth
DISC
COMPACT
DISC MOTOR
LO9465
DECODER
CDR650
S83C752
CONTROLLER
L2465
CD LOADER
DISC
COMPACT
ENCODER
SIGNAL
PROCESSOR
TDA1371
TDA1372
MICRO
SERVO
SERVO
DIGITAL
CONTROLLER
SERVO
DIGITAL
DRIVERS
CDM24
3-BEAM
MECHANISM
OQ8845
OQ8844
Fig.3 Double-speed write quad-speed play CD-R system D65420 with ATAPI or SCSI-2 interface.
1996 Jul 0210
Philips SemiconductorsPreliminary specification
High performance Compact
Disc-Recordable (CD-R) controller
7FUNCTIONAL DESCRIPTION
7.1Input clock doubler
To facilitate compatibility of the SAA7390 with all of the
available CD decoders, a clock doubler has been included.
This clock doubler may take a 16.9344 MHz clock and
double this when requested to do so by the
microcontroller. Logic has been included to remove the
possibility of a ‘runt’ clock pulse when the doubler is
engaged. Once engaged, the only way to disengage it is
via a reset condition.
7.2Block encoder
To support the write function, a modified version of the
CDB2 function has been included. The block encoder
accepts parallel data from the buffer manager, serializes it,
calculates the CRC and third-level ECC parity bytes and
appends them when and where necessary. The RAM
required during the parity calculation is included on the
SAA7390.
The following modifications to the CDB2 have been made:
• Word select in bypass mode has been inverted to match
the data mode
• The ‘end-of-frame’ signal is now generated during the
bypass and CD-ROM mode and will interrupt the
microcontroller at the end of each frame
• The ‘end-of-frame’ signal is also used to correctly
synchronize between bypass mode and regular data
mode at the end of a frame. The modes programmed
into the CDB2 command, header, sub-header and block
size registers will automatically switch in or out at the
end of frame
• DRQ in CCMD is also synchronized to frame boundaries
using the ‘end-of-frame’ signal. This change is valid for
both bypass and regular data modes.
7.3Front-end
The front-end section of the SAA7390 is identical to the
front-end of the mini-SEQUOIA (also found on the
SAA7385), with the exception of the Serial Peripheral
Interface (SPI). The front-end is comprised of many
sub-sections.
7.3.1B
The block decoder first reverses the bits of each received
byte and then runs them through a linear feedback shift
register to be de-scrambled. The polynomial used to
de-scramble the serial data is as follows: X
LOCK DECODER
15
+X+1
SAA7390
It also detects and tests the synchronization field and will
start the data clock when commanded. The de-scrambled
header is assembled into four registers with header ready
and header error status (see HDRRDY and HDRERR in
RDDSTAT). The data clock does not have to be enabled
to receive valid headers.
Also included in this section is the logic required to decide
when to automatically start collecting data and sub-code
information based on the contents of the Q-channel
registers.
7.3.2S
The sector sequencer de-serializes the data and error
flags from the block decoder and determines when to:
• Write data to the buffer
• Write flags to the buffer
• Test the header to determine the Mode
• Test the sub-header to determine the Form
• Test the CRC
• End the sector and write the status byte to the buffer.
Included in the sector sequencer is the CRC generator
which checks each Yellow book or Green book sector as it
is shifted into the SAA7390 in accordance with the
following polynomial:
32+X31+X16+X15+X4+X3
X
The status of each sector is saved and written to the buffer
at the end of the sector.
7.3.3S
A UART which samples asynchronous bits on a 24 clocks
per bit basis is included. This is required because the
CD-60 based decoders output the sub-code data at
nominally 24 clocks per bit, but not synchronized to the
data. Also included is a sub-code synchronization detector
which senses the beginning of each new sector of
sub-code information. The serial sub-code information is
assembled into bytes in the following order:
Data bits 7 to 0 = 0, Q, R, S, T, U, V and W.
As each byte is assembled, it is sent to the buffer manager
to be written to the DRAM buffer. At the same time, the
Q-channel bits are assembled into bytes and sent to the
buffer. All Q-channel bytes except CRC are sorted in
registers for use by the microcontroller. The Q-channel
CRC (last two bytes) is checked just before the end of the
sub-code sector. If the CRC check fails, BADQ in
RDDSTAT is available to the microcontroller and is written
into the buffer at the end of the sector.
ECTOR SEQUENCER
+X+1
UB-CODE RECEIVE AND Q-CHANNEL EXTRACTOR
1996 Jul 0211
Philips SemiconductorsPreliminary specification
High performance Compact
Disc-Recordable (CD-R) controller
When the ten Q-channel registers have been updated,
QFRMRDY in RDDSTAT is set. The ten Q-channel
registers are valid while QFRMRDY is set. In the audio
mode, HDRRDY in RDDSTAT generates this interrupt, but
the QFRMRDY bit will still be available as status to the
microcontroller.
7.3.4C-
The C-flag bits, or corrector flags, are also 24 data clocks
long and reception of these bits is achieved using the
same method as for the sub-code; in this event, the C-flag
data is synchronized to the data.
The difference is that only one bit is used; F1, the absolute
time synchronization information. When in audio mode
and ENABRED in FECTL is set, receipt of F1 set will start
the internal data clock after the next rising edge of word
strobe (WSAB) which is the left channel sample when the
CD-60 decoder is programmed for EIAJ audio format.
When in audio mode, the Q-channel information provides
the MSF address and the F1 flag provides the start of
frame information; together these provide an absolute byte
address on the disc.
7.3.5S2B UART
This UART is provided for communication with a second
slave microcontroller. It is hard-wired for one start-bit, eight
data bits, a parity bit and one stop bit. Parity testing can be
programmed to be either odd parity or even parity. Parity
error and over-run status are provided via PE and
OVRRUN in S2BSTAT. Selectable baud rates of
31.25, 62.5 and 187.5 kbaud are available via S2BSEL1
and S2BSEL0 in BRGSEL. Once the start-bit is found, the
data sampling time does not adapt dynamically, therefore
parity errors may occur depending on the baud rate
selected.
FLAG RECEIVER
SAA7390
7.3.6SPI UART
This UART is provided for communication with a second
slave microcontroller used in Philips CD-R engines.
7.3.7W
A pair of counters are included which output a 967 µs reset
pulse to the entire chip and the SYSRES and SYSRES
pins if the timer is not reset during the 212 ms time-out
period. The watch-dog timer is reset by setting RWMD in
FECTL HIGH then LOW. If RWMD is left HIGH, the
watch-dog function is disabled.
7.3.8G
The final block of logic in the front-end consists of:
a programmable, linear pulse-width modulator for
spindle-motor control; an address de-multiplexer for the
address/data bus of the microcontroller; plus audio
multiplexing and muting circuitry for full control of Red
book audio data to an external Digital-to-Analog Converter
(DAC).
7.4Track descriptor block
Logic has been included to simplify the creation of the
track descriptor block. This is achieved by allowing one
frame to be repeated a selectable number of times. Once
this repeated pattern is complete, the normal data is then
sent to the front-end.
ATCH-DOG TIMER
LUE LOGIC (GLIC)
1996 Jul 0212
Philips SemiconductorsPreliminary specification
High performance Compact
Disc-Recordable (CD-R) controller
7.5Buffer manager
The buffer manager provides the arbitration for the
different processes that wish to access the DRAM buffer.
These processes include the front-end, microcontroller
requests, CDB2 accesses, ECC accesses, host interface
requests and DRAM refreshing.
To manage a DRAM interface with up to four devices
requesting access to the DRAM, the following priority
scheme is used. The DRAM control logic will start an
access on the next rising edge of the clock after a request
is received. If two or more requests are pending then the
priority is:
1. Front-end (highest priority)
2. A refresh cycle (required every 15.6 µs) granted
priority for one access
3. Microcontroller requests
4. Host interface requests
5. ECC requests (lowest priority).
SAA7390
A burst access by ECC or host interface will only be
interrupted by a higher priority access request.
In addition to the priority logic, logic is required for the
front-end sources of data. The priority is; CDB2 requests
(highest) frame data, flag data, sub-code data, Q-channel
data and finally status byte. All front-end sources are
granted priority over the host interface logic, ECC, refresh
and data will be written into the frame store during the next
cycle. However, the microcontroller has priority over the
lower three front-end sources and will be granted an
access after front-end frame data or flag data is written to
memory.
The required timing (see Figs 4 to 11) operate with the
industry standard 70 ns DRAMs. The interface is designed
to operate with 256 kbytes, 1 Mbyte, and 4 Mbytes of
DRAM. A single byte access cycles requires five clock
cycles of 29.5 ns each, totalling 147.5 ns.
handbook, full pagewidth
CLOCK
RAS
CAS
ADDRESSROWCOL
DATA
DOE
Fig.4 Byte mode single access read cycle.
1996 Jul 0213
latch data
MGE392
Philips SemiconductorsPreliminary specification
High performance Compact
Disc-Recordable (CD-R) controller
handbook, full pagewidth
CLOCK
RAS
CAS
ADDRESS
DATA
WRITE
ROWCOL
SAA7390
DATA
MGE393
handbook, full pagewidth
CLOCK
ADDRESSROWCOL1COL2COL3COL4
DATA
Fig.5 Byte mode single access write cycle.
RAS
CAS
latchlatchlatch
DOE
MGE394
Fig.6 ECC burst access read cycle.
1996 Jul 0214
Philips SemiconductorsPreliminary specification
High performance Compact
Disc-Recordable (CD-R) controller
handbook, full pagewidth
CLOCK
RAS
CAS
ADDRESSROWCOL1COL2COL3COL4
DATA
WRITE
DATA1DATA2DATA3DATA4
SAA7390
MGE395
handbook, full pagewidth
CLOCK
RAS
CAS
ADDRESSROWCOL1COL2COL3COL4
DATA
DOE
Fig.7 ECC burst access write cycle.
latch datalatch datalatch data
MGE396
Fig.8 Host interface fast burst access read cycle (2 clocks).
1996 Jul 0215
Philips SemiconductorsPreliminary specification
High performance Compact
Disc-Recordable (CD-R) controller
handbook, full pagewidth
CLOCK
RAS
CAS
ADDRESSROWCOL1COL2COL3COL4
DATA
WRITE
DATA1DATA2DATA3DATA4
SAA7390
MGE397
handbook, full pagewidth
CLOCK
QA
QB
QC
RAS
CAS
ADDRESSROWCOL1COL2COL3COL4
DATA
DOE
Fig.9 Host interface fast burst access write cycle (2 clocks).
latch datalatch datalatch data
MGE520
Fig.10 Host interface standard burst access read cycle (3 clocks).
1996 Jul 0216
Philips SemiconductorsPreliminary specification
High performance Compact
Disc-Recordable (CD-R) controller
handbook, full pagewidth
CLOCK
QA
QB
QC
RAS
CAS
ADDRESSROWCOL1COL2COL3COL4
DATA
WRITE
DATA1DATA2DATA3DATA4
SAA7390
MGE521
Fig.11 Host interface standard burst access write cycle (3 clocks).
8MICROCONTROLLER INTERFACE
8.1Microprocessor interface status register
Table 1 NUM_COR register: 0xF08E; note 1
DATA BYTE
MNEMONICR/W
76543210
NUM_CORRNUM_COR7 to NUM_COR0
Note
1. Register 0xF08E indicates the number of corrections performed during the most recently executed
CORRECT_P_SYNDROMES or CORRECT_Q_SYNDROMES command. Note that NUM_COR is only valid after
completion of the CORRECT_P_SYNDROMES or CORRECT_Q_SYNDROMES command, and becomes invalid
upon execution of any other command.
Table 2 ECC_STATUS register: 0xF086; note 1
DATA BYTE
MNEMONICR/W
765 4 3 2 1 0
ECCSTATR−−−FLG_EQ0 CRC_EQ0PS_EQ0 QS_EQ0 ECC_ACT
Note
1. Register 0xF086 provides status information on the current or last ECC command.
1996 Jul 0217
Philips SemiconductorsPreliminary specification
High performance Compact
SAA7390
Disc-Recordable (CD-R) controller
Table 3 ECCSTAT definitions
MNEMONICDESCRIPTION
ECC_ACTasserted while a command other than ASSERT_ABORT or RELEASE_ABORT remains active
QS_EQ0asserted when all Q syndromes are zero
PS_EQ0asserted when all P syndromes are zero
CRC_EQ0asserted when the CRC remainder calculated by the CRC_CALCULATE command is all zeros
FLG_EQ0asserted when all flag bytes in ECC RAM are zero
8.2Microcontroller interface command register
Table 4 ECCCTL register: 0xF085; note 1
MNEMONICR/W
76543210
ECCCTLR/W−−−−ECC_COMMAND3 to ECC_COMMAND0
Note
1. The ECC_COMMAND definitions are explained in Table 5.
DATA BYTE
Table 5 Definitions of ECC_COMMAND3 to ECC_COMMAND0
EEC_COMMANDDESCRIPTION
0000ASSERT_ABORT
0001RELEASE_ABORT
0010CALCULATE_SYNDROMES (not Mode 2, Form 1)
0011CALCULATE_SYNDROMES (Mode 2, Form 1)
0100CRC_RECALCULATE (not Mode 2, Form 1)
0101CRC_RECALCULATE (Mode 2, Form 1)
0110COPY_RESULTS (not Mode 2, Form 1)
0111COPY_RESULTS (Mode 2, Form 1)
1000CORRECT_P_SYNDROMES
1001CORRECT_Q_SYNDROMES
1100TEST_ECC_ROM
1101TEST_ECC_RAM_READ
1110TEST_ECC_RAM_WRITE
Table 6 Command descriptions
COMMANDDESCRIPTION
ASSERT_ABORTTerminates any currently active operation and re-initializes the ECC logic. Remains in
reset state until occurrence of the RELEASE_ABORT command. At power-on reset,
the ECC is in the ASSERT_ABORT state. All microprocessor status bits are reset
when the ECC is in the ASSERT_ABORT state.
RELEASE_ABORTTerminates the ASSERT_ABORT command and enables activation of other
commands.
1996 Jul 0218
Philips SemiconductorsPreliminary specification
High performance Compact
SAA7390
Disc-Recordable (CD-R) controller
COMMANDDESCRIPTION
CRC_RECALCULATECalculate CRC remainder buffer data, storing result in ECC RAM and updating
microprocessor status bit CRC_EQ0. Mode 2, Form 1 uses address 16 : 2075, or
0 : 2067; note 1
CALCULATE_SYNDROMESPrepares buffer for correction, calculates P and Q syndromes, and copies error flags
and CRC remainder from buffer to ECC RAM. The microprocessor status bits
PS_EQ0, QS_EQ0 and FLAGS_EQ0 are updated at the end of this operation.
1. Copy header from buffer to ECC RAM (Mode 2, Form 1 only)
3. Read header and frame data from buffer to calculate P and Q syndromes
psyn[0 : 85].s1, psyn[0 : 85].s0, qsyn[0 : 51].s1 and qsyn[0 : 51].s0, storing results
in ECC RAM
4. Copy error flags from buffer to ECC RAM
5. Copy CRC remainder from buffer to ECC RAM
6. Update microprocessor status bits PS_EQ0, QS_EQ0 and FLAGS_EQ0.
COPY_RESULTS
Copies current ECC RAM contents to the buffer memory:
1. Copy header flags from ECC RAM to buffer (Mode 2, Form 1 only)
2. Copy error Flags from ECC RAM to buffer
3. Copy CRC remainder from ECC RAM to buffer
4. Copy P syndromes from ECC RAM to buffer
5. Copy Q syndromes from ECC RAM to buffer.
CORRECT_P_SYNDROMESScan all P syndromes and perform P-syndrome calculation. The microprocessor status
bits PS_EQ0, QS_EQ0 and FLAGS_EQ0 are updated at the end of this operation.
CORRECT_Q_SYNDROMESScan all Q syndromes and perform Q-syndrome calculation. The microprocessor
status bits PS_EQ0, QS_EQ0 and FLAGS_EQ0 are updated at the end of this
operation.
TEST_ECC_ROMRead each exponent and log in the alpha ROM to the NUM_COR register. This
command may only be terminated by the ASSERT_ABORT command.
TEST_ECC_RAM_READRead ECC RAM addresses 0 : 591 and copy to buffer addresses 0 : 591.
TEST_ECC_RAM_WRITERead buffer addresses 0 : 591 and copy to ECC RAM addresses 0 : 591.
Note
1. 16 : 2075 and 0 : 2067 are address frame offsets. The frame buffer organization is shown in Table 76.
1996 Jul 0219
Philips SemiconductorsPreliminary specification
High performance Compact
SAA7390
Disc-Recordable (CD-R) controller
8.3Microprocessor interrupts
An interrupts pulse is generated upon completion of any of the following commands:
• CALCULATE_SYNDROMES (not Mode 2, Form 1)
• CALCULATE_SYNDROMES (Mode 2, Form 1)
• CRC_RECALCULATE (not Mode 2, Form 1)
• CRC_RECALCULATE (Mode 2, Form 1)
• COPY_RESULTS (not Mode 2, Form 1)
• COPY_RESULTS (Mode 2, Form 1)
• CORRECT_P_SYNDROMES
• CORRECT_Q_SYNDROMES
• TEST_ECC_ROM
• TEST_ECC_RAM_READ
• TEST_ECC_RAM_WRITE.
If a command is aborted by the ASSERT_ABORT command, a spurious interrupt may be generated within five clock
cycles of the ASSERT_ABORT command.
Table 7 Command execution times; note 1
COMMANDCYCLES
CALCULATE_SYNDROMES (not Mode 2, Form 1)5604186.82658
CALCULATE_SYNDROMES (Mode 2, Form 1)5600186.72654
CRC_RECALCULATE (not Mode 2, Form 1)4136137.92068
CRC_RECALCULATE (Mode 2, Form 1)4120137.32060
COPY_RESULTS (not Mode 2, Form 1)114838.3574
COPY_RESULTS (Mode 2, Form 1)115638.5578
CORRECT_P_SYNDROMES
(maximum addition per correction)
CORRECT_Q_SYNDROMES
(maximum addition per correction)
TEST_ECC_RAM_READ118439.5592
TEST_ECC_RAM_WRITE118439.5592
Note
1. All times indicated reflect two clock cycles per memory access for all accesses other than P and Q corrections.
P and Q corrections reflect seven clock cycles per memory access. Execution times will be extended due to refresh
timing, other buffer traffic, and configuration of nibble-wide memory.
8.3.1I
NTERRUPT REGISTER DEFINITIONS
1466
157
888
167
TIME (µs)
at 33 MHz
48.9
5.2
29.6
5.6
MEMORY
ACCESSES
0
2
0
2
Two registers are used to control the operation of the interrupt logic. The register INTRMSK allows each interrupt to be
enabled or disabled. INTRMSK and INTRFLG are cleared on reset to initially disable and clear all interrupts; the output
latch controlling the INT line is set on a reset; this must be cleared by writing 0x00 to INTRFLG. To enable an interrupt,
the bit that corresponds to the interrupt in INTRFLG must be set. The INTRFLG register shows the status of the
interrupts. If any bit is HIGH then an interrupt has occurred since the last time the bit was cleared. Writing a zero to any
1996 Jul 0220
Philips SemiconductorsPreliminary specification
High performance Compact
SAA7390
Disc-Recordable (CD-R) controller
bit location in INTRFLG will clear the corresponding interrupt. If a masked interrupt occurs, the microcontroller can still
detect the occurrence because the event is still posted in INTRFLG.
Each bit in register 0xF0FB corresponds to the interrupt at the same bit location in register 0xF0FC. To enable an
interrupt, the bit in this register must be set HIGH.
1. If any bit is set in this register an interrupt is sent to the microcontroller. Table 10 shows when the interrupts are
asserted; assuming the corresponding mask bit is set.
DATA BYTE
DATA BYTE
Table 10 INTRFLG field descriptions
FIELDDESCRIPTION
FRM_STRset one when one complete frame is stored
STR_LSTset at the start of the last frame
FE_2352set if the front-end data exceeds 2352 bytes
FE_HDRfront-end interrupt for header (or Q channel) ready
ECC_CORECC interrupt for correction complete
RFERXINTfront-end interrupt for receive ready
FETXINTfront-end interrupt for transmit ready
CDB2INTCDB2 interrupts: see CSTAT (Table 78) for bit descriptions
8.4Microcontroller RAM organization
MICFRM# is used to determine the frame address for the
microcontroller access through the frame window
0x8000 to 0x8FFF. To obtain the actual byte location
within the buffer RAM, the lower 12 bits of the
microcontroller address form the relative offset and hence
the absolute address is found.
Note that the microcontroller has the option of addressing
memory in a linear fashion using the 32 kbytes address
space between 0x000 and 0x7FFF. If this 32 kbytes page
is used, the PAGEREG must be programmed with the
required page address. PAGEREG is used to select the
required page when the microcontroller makes a linear
access to the buffer memory using the address space
0x7000 to 0x7FFF. The actual address is the fifteen LSBs
from the microcontroller plus 32768 times the value in
PAGEREG.
1996 Jul 0221
Philips SemiconductorsPreliminary specification
High performance Compact
SAA7390
Disc-Recordable (CD-R) controller
Table 11 Microcontroller frame number address registers: 0xF0F6 and 0xF0F7; note 1
1. Registers 0xF0F6 and 0xF0F7 provide the frame number address for the microcontroller access to memory. The
counter associated with these registers is loaded after the most significant byte is written; the least significant byte
must be written first to ensure that the counter is loaded correctly. If a DRAM access is in progress that uses the
address from the counter, the update will be delayed until the access is complete.
1. Register 0xF0FF is used by the buffer manager for the upper address lines when the microcontroller addresses
non-frame memory. These registers overlap frame memory, so register 0xF0FF must be programmed with an
address in the top part of the memory if no overlap is required. The microcontroller page address line is selected from
this register. The outputs are used directly to control DRAM access cycles, and will affect any current DRAM cycle
in progress.
DATA BYTE
DATA BYTE
It is possible to access three contiguous frames from the
microcontroller by reading the three data sector windows,
0x8000 to 0x8FFF, 0x9000 to 0x9FFF and
0xA000 to 0xAFFF. This function is required for the
decoding of the sub-code information. If the ‘next’ frame
wraps past the last frame pointer (LASTFRM) then the
pointers are modified to wrap back to the start pointer
onwards (FEFRM#); this section is transparent to the
microcontroller.
1996 Jul 0222
Philips SemiconductorsPreliminary specification
High performance Compact
Disc-Recordable (CD-R) controller
handbook, halfpage
0000
SCRATCH PAD RAM
7FFF
8000
DATA SECTOR WINDOW
9000
DATA SECTOR WINDOW
A000
DATA SECTOR WINDOW
AFFF
SAA7390
80C32
(FRAME 0)
(FRAME 1)
(FRAME 2)
F000
FFFF
SAA7390
CONTROL REGISTERS
MGE522
Fig.12 Address map for the microcontroller.
Table 13 SAA7390 address map details for the 80C32
ADDRESSFUNCTION
0000 to 7FFFThis 32 kbytes window is used to address and portion the DRAM buffer. It is intended for non-frame
mapped memory to be addressed through this window. The upper page address bits (to address the
full range of the DRAM buffer) are set by the linear address page register (PAGEREG).
8000 to 8FFFAll accesses to frame memory use this window to read or write to the buffer memory. The actual
address to the DRAM buffer is Micro Frame Number (MICFRM#) times 3 k plus the 12 LSBs from the
80C32.
9000 to 9FFFThis frame window is identical to the frame 0 window with the exception that one is added to the
value from the Micro Frame Number (MICFRM#).
A000-AFFFThis frame window is identical to the frame 0 window with the exception that two is added to the
value from the Micro Frame Number (MICFRM#).
B000-EFFFNot used; output 3-state.
F000-FFFFSAA7390 control registers.
1996 Jul 0223
Loading...
+ 53 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.