Rainbow Electronics AT91CAP9S250A User Manual

Page 630

Advertising
background image

630

6264A–CAP–21-May-07

AT91CAP9S500A/AT91CAP9S250A

This feature is implemented in AC97 modem codecs that need to report events such as Caller-
ID and wake-up on ring.

The AC97 Codec can drive AC97RX signal from low to high level and holding it high until the
controller issues either a cold or a worm reset. The AC97RX rising edge is asynchronously
(regarding AC97FS) detected by the AC’97 Controller. If WKUP bit is enabled in AC97C_IMR
register, an interrupt is triggered that wakes up the AC‘97 Controller which should then imme-
diately issue a cold or a warm reset.

If the processor needs to be awakened by an external event, the AC97RX signal must be
externally connected to the WAKEUP entry of the system controller.

Figure 37-7. AC’97 Power-Down/Up Sequence

37.6.4.3

AC97 Codec Reset

There are three ways to reset an AC97 Codec.

Cold AC’97 Reset

A cold reset is generated by asserting the RESET signal low for the minimum specified time
(depending on the AC97 Codec) and then by de-asserting RESET high. AC97CK and
AC97FS is reactivated and all AC97 Codec registers are set to their default power-on values.
Transfers on AC-link can resume.

The RESET signal will be controlled via a PIO line. This is how an application should perform
a cold reset:

• Clear and set ENA flag in the AC97C_MR register to reset the AC’97 Controller

• Clear PIO line output controlling the AC’97 RESET signal

• Wait for the minimum specified time

• Set PIO line output controlling the AC’97 RESET signal

AC97CK, the clock provided by AC97 Codec, is detected by the controller.

Warm AC’97 Reset

A warm reset reactivates the AC-link without altering AC97 Codec registers. A warm reset is
signaled by driving AC97FX signal high for a minimum of 1us in the absence of AC97CK. In
the absence of AC97CK, AC97FX is treated as an asynchronous (regarding AC97FX) input
used to signal a warm reset to AC97 Codec.

This is the right way to perform a warm reset:

• Set WRST in the AC97C_MR register.

AC97CK

AC97FS

TAG

Write to

0x26

Data

PR4

Power Down Frame

Sleep State

TAG

Write to

0x26

Data

PR4

Wake Event

Warm Reset

New Audio Frame

TAG

Slot1

Slot2

AC97TX

AC97RX

TAG

Slot1

Slot2

Advertising