NO:
W90P710 Programming Guide
VERSION:
2.0
PAGE:
138
The above information is the exclusive intellectual property of Winbond Electronics and shall not be disclosed, distributed or reproduced without permission
from Winbond.
Table No.: 2005-W90P710-11-A
4.
Reset the external AC97 codec.
5.
Install interrupt service routine and enable W90P710 audio controller record interrupt.
The record IRQ number is 6.
6.
Program AC97 codec record sampling rate. (refer to AC97 specification)
7.
Allocate memory for record DMA buffer, whose base address must be 4 bytes aligned.
8.
Write base address of record DMA buffer to
ACTL_RDSTB
register with
bit 31
set
(indicates non-cacheable memory area), and write the DMA buffer length to
ACTL_RDST_LENGTH
register
9.
Set
AC_RECORD
bit of
ACTL_RESET
register to start recording.
10.
In record ISR, check
ACTL_RSR
register. If
R_DMA_MIDDLE_IRQ
bit was set, read
PCM data from the first half of record DMA buffer. Otherwise, if
R_DMA_END_IRQ
bit
was set, read PCM data from the second half of record DMA buffer.
Once enough PCM data has been gathered, and recording wants to be stopped, just clear the
AC_RECORD
bit of
ACTL_RESET
register to stop recording.
10.5 I2S Interface
W90P710 IIS interface entirely support the functionality defined by I2S codec standard.
W90P710 I2S interface supports 16 bits I2S and MSB-justified format. It supports 16-bits PCM.
Basically, it provides 2-channels playback and 2-channels record with variable sampling rate, 8000,
11025, 12000, 16000, 22025, 24000, 32000, 44100, and 48000 Hz. Even double rate (96kHz or
88.2Khz) are supported.
W90P710 I2S interface dose not provides facilities of external I2S codec register accessing. It
should be accessed by the serial interface (such as L3 in Philips codec) through W90P710 GPIO pin.
The playback and record data transfer are done by DMA transfer. These facilities greatly reduce the
loading of software.
10.5.1 I2S
Play
W90P710 audio controller provides DMA function for transferring PCM data from main memory to
external I2S codec. It supports single-channel or 2 channels transfer. It should set base and address