Manual
628
6264A–CAP–21-May-07
AT91CAP9S500A/AT91CAP9S250A
Data emitted on related slot: data[19:0] = {0x000, Byte1[1:0], Byte0[7:0]}.
To Receive Word transfers
Data received on appropriate slot: data[19:0] = {Byte2[3:0], Byte1[7:0], Byte0[7:0]}.
Word stored in AC’97 Controller Channel x Receive Holding Register (AC97C_CxRHR)
(Received Data)
.
Data is read from AC’97 Controller Channel x Receive Holding Register (AC97C_CxRHR)
when Channel x data size is greater than 16 bits and when big-endian mode is enabled (data
written to memory).
To Receive Halfword Transfers
Data received on appropriate slot: data[19:0] = {0x0, Byte1[7:0], Byte0[7:0]}.
Halfword stored in AC’97 Controller Channel x Receive Holding Register (AC97C_CxRHR)
(Received Data).
Data is read from AC’97 Controller Channel x Receive Holding Register (AC97C_CxRHR)
when data size is equal to 16 bits and when big-endian mode is enabled.
To Receive 10-bit Samples
Data received on appropriate slot: data[19:0] = {0x000, Byte1[1:0], Byte0[7:0]}.Halfword stored
in AC’97 Controller Channel x Receive Holding Register (AC97C_CxRHR) (Received Data)
Data read from AC’97 Controller Channel x Receive Holding Register (AC97C_CxRHR) when
data size is equal to 10 bits and when big-endian mode is enabled.
37.6.3 Variable Sample Rate
The problem of variable sample rate can be summarized by a simple example. When passing
a 44.1 kHz stream across the AC-link, for every 480 audio output frames that are sent across,
441 of them must contain valid sample data. The new AC’97 standard approach calls for the
addition of “on-demand” slot request flags. The AC‘97 Codec examines its sample rate control
register, the state of its FIFOs, and the incoming SDATA_OUT tag bits (slot 0) of each output
31 24 23 20 19 16 15 8 7 0
– – Byte2[3:0] Byte1[7:0] Byte0[7:0]
31 24 23 16 15 8 7 0
Byte0[7:0] Byte1[7:0] {0x0, Byte2[3:0]} 0x00
31 24 23 16 15 8 7 0
– – Byte1[7:0] Byte0[7:0]
31 24 23 16 15 8 7 0
– – Byte0[7:0] Byte1[7:0]
31 24 23 16 15 10 9 8 7 0
–––
Byte1
[1:0]
Byte0[7:0]
31 24 23 16 15 8 7 3 1 0
– – Byte0[7:0] 0x00
Byte1
[1:0]










