What is the I2C address to change the digital volume control for playback?
- The I2C addresses for digital volume control is called DVC_PCM. Since digital control is 32 bits, DVC_PCM takes 4 registers(address 0x0C - 0x0F) in total with the first one located in Book 0, Page 2, in register 0x0C.
- DVC_Slew is the register that controls the rate at which volume changes. In similar format, the first register is located in Book 0, Page 2, in register 0x10.
- DVC_Slew = round(exp(-1/(0.2*fs*time in seconds))*2^31)
How can I adjust the volume?
- To adjust the volume, first you need to convert the volume in dB to decimal.
- Ratio(decimal) = round(10^(gain/20) * 2^30)
- Then convert the Ratio in decimal to HEX
- For example: -3dB -> 2d 4e fb d6
- Write the HEX (32 bits) to DVC_PCM1 - DVC_PCM4
- Example I2C command:
-
w 98 00 00 w 98 7f 00 w 98 00 02 w 98 0c 2d 4e fb d6