English
Language : 

8169 Datasheet, PDF (16/30 Pages) STMicroelectronics – DIGITAL AUDIO PROCESSOR WITH MULTICHANNEL DDX™
STA304A
10.0 COEFFICIENT HANDLING
In order to implement the Static EQ filters and the Bass management, a RAM space for user coefficients has
been included in this device: starting from address 240h (YRAM) there are 69 x 20 bit registers available for this
purpose. In order to be able to read or write into these registers an indirected addressing approach must be
followed by the application software. As showed in Figure 8 there are two AC'97 dedicated registers (4 x 8 bits
registers from I2C point of view) to access the coefficient table. In register 78h (78h + 79h in I2C addressing)
the 16 low bits of the coefficient are stored (by the user in case of a write operation, by the logic in case of a
read operation); the higher 4 bits are stored in the lowest nibble of register 7Ah (7Bh in I2C addressing). The
address of the coefficient on which the R/W operation must be performed is stored in the high byte of register
7Ah. The address is made adding the coefficient index to the base location 40h.
To select between Read or Write operation the 'R' bit in register 7Ah (7Bh in I2C addressing) must be properly
setup. The actual read/write operation will start after the register 7Ah (7Bh in I2C addressing) has be written.
The following paragraphs will explain this in more details.
Figure 12. Coefficient registers usage
AC`97
I2C
Bit 15
Bit 0
78h
78h 79h
Coefficient[15..0]
7Ah
7Ah 7Bh
Coeff. Address (8 bits) R-x-x-x Coefficient[19..16]
R : set this bit to 1 for reading a coefficient, 0 for writing it.
10.1 Reading a coefficient value
Depending on the bus used to read the coefficient the following steps must be followed:
• Reading from AC’97
– write 8 bit INDEX 40h and R/W bit at AC`97 address 7Ah
– read 16 lower data bits at AC`97 address 78h
– read 4 higher data bits at AC`97 address 7Ah
• Reading from I2C
– write 8 bit address at I2C address 7Ah coeff INDEX + 40h
– write R/W bit at I2C address 7Bh
– read 8 middle data bits at I2C address 78h
– read 8 lower data bits at I2C address 79h
– read 4 higher data bits at I2C address 7Bh
10.2 Writing a coefficient value
Depending on the bus used to write the coefficient the following steps must be followed:
• Writing from AC’97
– write 16 lower bit data at AC`97 address 78h
– write 8 bit INDEX + 40h and R/W bit and 4 higher data bits at AC`97 address 7Ah
• Writing from I2C
– write 8 middle data bits at I2C address 78h
– write 8 lower data bits at I2C address 79h
– write 8 bit address at I2C address 7Ah coeff INDEX + 40h
– write 4 higher data bits and R/W bit at I2C address 7Bh
16/30