请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
https://e2e.ti.com/support/audio-group/audio/f/audio-forum/602401/aic3204-biquad-filters-don-t-work
大家好,我正在使用编解码器AIC3204。
我使用的是192 KHz采样速率。 我希望我的ADC通过频率在300-1600 Hz范围内
我配置了如下编解码器:
_AIC3204_init:
;指向第0页
AC1 =#0
AR1 =#0x0
调用i2c_WriteData8
;重置编解码器
AC1 =#1
AR1 =#0x1
调用i2c_WriteData8
;指向第1页
AC1 =#0
AR1 =#0x1
调用i2c_WriteData8
;禁用DVDD的原始AVDD生成
AC1 =#1
AR1 =#0x08
调用i2c_WriteData8
;启用模拟块和LDO
AC1 =#2
AR1 =#0x01
调用i2c_WriteData8
;*******************************************************
;* PLL和时钟配置和开机
;*******************************************************
;指向第0页
AC1 =#0
AR1 =#0x0
调用i2c_WriteData8
;AIC是1.288 MHz晶体的主要运行方式
;BCLK和WCLK被设置为AIC3204 (主)- 16位字的操作
AC1 =#27
AR1 =#0x0D
调用i2c_WriteData8
;PLL设置:PLLCLK <- MCLK和CODEC _CLKIN <-PLL CLK
AC1 =#4
AR1 =#0x03
调用i2c_WriteData8
;PLL通电;PLL分压器参数:P = 1,R = 1
AC1 =#5
AR1 =#0x91
调用i2c_WriteData8
; PLL设置:J=8
AC1 =#6
AR1 =#0x08
调用i2c_WriteData8
;PLL设置:用于D=0x0780 (或1920十进制)的hI_byte(D)
AC1 =#7
;AR1 =#0x07
AR1 =#0x00
调用i2c_WriteData8
;PLL设置:用于D=0x0780的LO_BYTE(D)
AC1 =#8
;AR1 =#0x80
AR1 =#0x00
调用i2c_WriteData8
;NDAC = 2
AC1 =#11
AR1 =#0x82
调用i2c_WriteData8
;MDAC =8
AC1 =#12
AR1 =#0x88
调用i2c_WriteData8
;DOSR H (DOSR = 32)
AC1 =#13
AR1 =#0x00
调用i2c_WriteData8
;DOSR L (DOSR = 32)
AC1 =#14
AR1 =#0x20
调用i2c_WriteData8
;时钟设置寄存器11,BCLK N除法器N =7
AC1 =#30
AR1 =#0x87
调用i2c_WriteData8
;打开NADC电源并将NADC值设置为2
AC1 =#18
AR1 =#0x82
调用i2c_WriteData8
;启动mAdc并将mAdc值设置为8
AC1 =#19
AR1 =#0x88
调用i2c_WriteData8
;AOSR对于AOSR =32
AC1 =#20
AR1 =#0x20
调用i2c_WriteData8
;指向第0页
AC1 =#0
AR1 =#0x0
调用i2c_WriteData8
;DAC PRB
AC1 =#60
AR1 =#21
调用i2c_WriteData8
;ADC PRB
AC1 =#61
AR1 =#8
请致电i2c_WriteData8
;***********************************************************************
;* DAC路由和通电
;***************************************************************
;选择第1页
AC1 =#0
AR1 =#0x01
调用i2c_WriteData8
;LDAC ATIR路由到HPL
AC1 =#12
AR1 =#0x08
调用i2c_WriteData8
;RDAC ATIR路由到HPR
AC1 =#13
;AR1 = 0x08
AR1 =#0x00
调用i2c_WriteData8
;选择第0页
AC1 =#0
AR1 =#0x00
调用i2c_WriteData8
;左vol=右vol
AC1 =#64
AR1 =#0x02
调用i2c_WriteData8
;左DAC增益至0dB VOL;右磁道左
AC1 =#65
AR1 =#0x00;无DRC
;AR1 = 0x18;带有DRC
调用i2c_WriteData8
;DRC
;DAC =>为左信道启用DRC,阈值=-24 db,滞后=3 dB
;AC1 =#0x44
;AR1 =#0x5F
;调用i2c_WriteData8.
;DRC保持=0 ms,增益变化率= 0.5 dB/FS'
;AC1 =#0x45
;AR1 =#0x00
;调用i2c_WriteData8.
;攻击速率=1.9531e-4 dB/帧,DRC衰减速率=2.4414e-5 dB/帧
;AC1 =#0x46
;AR1 =#0xB6
;调用i2c_WriteData8.
;结束DRC
;打开左,右数据路径并设置通道
AC1 =#63
;AR1 =#0x92
AR1 =#0xB2
调用i2c_WriteData8
;选择第1页
AC1 =#0
AR1 =#0x01
调用i2c_WriteData8
;取消静音HPL,0dB增益
AC1 =#16
AR1 =#0x00
调用i2c_WriteData8
;静音HPR,0dB增益
AC1 =#17
AR1 =#0x00;#0x40
调用i2c_WriteData8
;启动HPL
AC1 =#9
;AR1 = 0x28 --精密
AR1 =#0x30
调用i2c_WriteData8
;选择第0页
AC1 =#0
AR1 =#0x00
调用i2c_WriteData8
@BRC0_L =#0x02FF || mmap()
localrepeat {
REPEAT (#0xFFFFff)
NOP_16
NOP_16}
;*******************************************************************************
;* ADC路由和通电
;***************************************************************
;选择第8页
AC1 =#0
AR1 =#0x08
调用i2c_WriteData8
;双四轮A
;N0
AC1 =#36
AR1 =#0x00
调用i2c_WriteData8
AC1 =#37
AR1 =#0x26
调用i2c_WriteData8
AC1 =#38
AR1 =#0x56
调用i2c_WriteData8
;N1
AC1 =#40
AR1 =#0x00
调用i2c_WriteData8
AC1 =#41
AR1 =#0x26
调用i2c_WriteData8
AC1 =#42
AR1 =#0x56
调用i2c_WriteData8
;N2
AC1 =#44
AR1 =#0x00
调用i2c_WriteData8
AC1 =#45
AR1 =#0x26
调用i2c_WriteData8
AC1 =#46
AR1 =#0x56
调用i2c_WriteData8
;D1.
AC1 =#48
AR1 =#0x7B
调用i2c_WriteData8
AC1 =#49
AR1 =#0x23
调用i2c_WriteData8
AC1 =#50
AR1 =#0x56
调用i2c_WriteData8
;D2
AC1 =#52
AR1 =#0x89
调用i2c_WriteData8
AC1 =#53
AR1 =#0x5E
调用i2c_WriteData8
AC1 =#54
AR1 =#0x31
调用i2c_WriteData8
;双四轮B
;N0
AC1 =#56
AR1 =#0x7F
调用i2c_WriteData8
AC1 =#57
AR1 =#0xFF
调用i2c_WriteData8
AC1 =#58
AR1 =#0xFF
调用i2c_WriteData8
;N1
AC1 =#60
AR1 =#0x80
调用i2c_WriteData8
AC1 =#61
AR1 =#0x00
调用i2c_WriteData8
AC1 =#62
AR1 =#0x01
调用i2c_WriteData8
;N2
AC1 =#64
AR1 =#0x7F
调用i2c_WriteData8
AC1 =#65
AR1 =#0xFF
调用i2c_WriteData8
AC1 =#66
AR1 =#0xFF
调用i2c_WriteData8
;D1.
AC1 =#68
AR1 =#0x7E
调用i2c_WriteData8
AC1 =#69
AR1 =#0xC7
调用i2c_WriteData8
AC1 =#70
AR1 =#0x8F
调用i2c_WriteData8
;D2
AC1 =#72
AR1 =#0x82
调用i2c_WriteData8
AC1 =#73
AR1 =#0x6A
调用i2c_WriteData8
AC1 =#74
AR1 =#0xf8
调用i2c_WriteData8
;选择第1页
AC1 =#0
AR1 =#0x01
调用i2c_WriteData8
AC1 =#52
AR1 =#0x30
将i2c_WriteData8;CM_1
(通用模式)调用到40千欧的LADC_M
AC1 =#54
AR1 =#0x03
呼叫i2c_WriteData8
;MIC_PGA_L取消静音
AC1 =#0x3B
AR1 =#0x5D
呼叫i2c_WriteData8
;MIC_PGA_R取消静音
AC1 =#0x3C
AR1 =#0x80
调用i2c_WriteData8
;选择第0页
AC1 =#0
AR1 =#0x00
调用i2c_WriteData8
;Powerup左ADC
AC1 =#81
AR1 =#0x80
;AR1 =#0x8A
调用i2c_WriteData8
;取消左ADC静音和右ADC静音
AC1 =#82
;AR1 = 0x00 --精密
AR1 =#0x08
调用i2c_WriteData8
;虚拟读取
AC1 = 9
AR1 = 0xABAB
调用i2c_ReadData8
我的问题是,我看到频率超过30kHz从DAC传输。
有什么建议?
提前感谢
Paolo