cs5535 National Semiconductor Corporation, cs5535 Datasheet - Page 88

no-image

cs5535

Manufacturer Part Number
cs5535
Description
Geode Cs5535 Companion Multi-function South Bridge
Manufacturer
National Semiconductor Corporation
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
cs5535-KSZ
Manufacturer:
CIRRUSLOGIC
Quantity:
20 000
Part Number:
cs5535-UDC
Manufacturer:
AMD
Quantity:
20 000
Part Number:
cs5535-UDCF
Manufacturer:
AMD
Quantity:
20 000
www.national.com
ACC Functional Description
4.3.7.4
Audio Playback/Record
The following discussion explains, in steps, how to initiate
and maintain a bus master transfer between memory and
an audio slave device. In the steps, the reference to Exam-
ple refers to Figure 4-7:
1)
2)
3)
4)
Software creates a PRD table in system memory. The
last PRD entry in a PRD table must have the EOT or
JMP bit set.
Example - Assume the data is outbound. There are
three PRDs in the example PRD table. The first two
PRDs (PRD_1, PRD_2) have only the EOP bit set.
The last PRD (PRD_3) has only the JMP bit set. This
example creates a PRD loop.
Software loads the starting address of the PRD table
by programming the PRD Table Address register.
Example - Program the PRD Table Address register
with Address_3.
Software must fill the buffers pointed to by the PRDs
with audio data. It is not absolutely necessary to fill the
buffers; however, the buffer filling process must stay
ahead of the buffer emptying. The simplest way to do
this is by using the EOP flags to generate an interrupt
when an audio buffer is empty.
Example - Fill Audio Buffer_1 and Audio Buffer_2.
Ensure than an interrupt service routine is assigned to
the audio interrupt.
Read the IRQ Status register to clear the Bus Master
Error and End of Page flags (if set).
Program the AC97 codec properly to receive audio
data (mixer settings, etc.).
Engage the bus master by setting the Bus Master
Enable bit.
Programming Model
Address_3
EOT = 0
EOP = 1
JMP = 0
EOT = 0
EOP = 1
JMP = 0
EOT = 0
EOP = 0
JMP = 1
Address_1
Address_2
Address_3
Figure 4-7. ACC PRD Table Example
(Continued)
Don’t Care
Size_1
Size_2
88
5)
The bus master reads the PRD entry pointed to by the
PRD Table Address register. Using the address from
the PRD, it begins the audio transfer. The PRD Table
Address register is incremented by eight.
Example - The bus master is now properly pro-
grammed to transfer Audio Buffer_1 to a specific
slot(s) in the AC97 interface.
The bus master transfers data from memory and
sends it to the AC97 Codec. At the completion of each
PRD, the bus master’s next response depends on the
settings of the flags in the PRD.
Example - After transferring the data described by
PRD_1, an interrupt is generated because the EOP bit
is set, and the bus master continues on to PRD_2. The
interrupt service routine reads the Second Level Audio
IRQ Status register to determine which bus master to
service. It refills Audio Buffer_1 and then reads the
bus master’s IRQ Status register to clear the End of
Page flag and the interrupt.
After transferring the data described by PRD_2,
another interrupt is generated because the EOP bit is
set, and the bus master continues on to PRD_3. The
interrupt service routine reads the Second Level Audio
IRQ Status register to determine which bus master to
service. It refills Audio Buffer_2 and then reads the
bus master’s IRQ Status register to clear the End of
Page flag and the interrupt.
PRD_3 has the JMP bit set. This means the bus mas-
ter uses the address stored in PRD_3 (Address_3) to
locate the next PRD. It does not use the address in the
PRD Table Address register to get the next PRD.
Since Address_3 is the location of PRD_1, the bus
master has looped the PRD table. No interrupt is gen-
erated for PRD_3.
PRD_1
PRD_2
PRD_3
Address_1
Address_2
Buffer_1
Buffer_2
Audio
Audio
Size_1
Size_2
Revision 0.8

Related parts for cs5535