TLV320AIC3100 TI声卡芯片.docx
《TLV320AIC3100 TI声卡芯片.docx》由会员分享,可在线阅读,更多相关《TLV320AIC3100 TI声卡芯片.docx(19页珍藏版)》请在冰豆网上搜索。
TLV320AIC3100TI声卡芯片
TLV320AIC3100TI声卡芯片
名词:
DRC:
DynamicRangeCompression
PGA:
可编程增益放大器
AGC:
AutomaticGaincontrol,是给ADC录音使用的,提高模拟录音的性能
这里就有设计到DecayTime和AttackTime时间,我们在寄存器中有这个设置选项
更多的参数可以参考UsingtheAGC,DRCandBeepgeneratorFunctioninTLV320AIC3204/3254/3100/3110/31
BCLK的频率=声道数×采样频率×采样位数,
如采样频率fs为44.1kHz,采样的位数为16位,声道数2个(左、右两个声道),则IISSCLK的频率=32fs=1411.2kHz。
MCLK:
是外部时钟,给芯片使用,输入到PLL中
IIS接口
DOUT:
数据输出
DIN:
数据输入
BCLK:
bitClock
WCLK:
帧同步时钟,IIS中用来区分左右声道
MICBIAS:
麦克风
MIC1LP:
输入Microphone/lineinputroutedtoPinputmixerandleftoutputmixer
MIC1RP:
输入Microphone/lineinputroutedtoPinputmixerandleft/rightoutputmixer
MIC1LM:
输入Microphone/lineinputroutedtoMorPinputmixer
VOL/MICDET:
DAC声音控制或检测麦克风是否插入
Headset:
耳机
HPR:
耳机右声道
HPL:
耳机左声道
SKP:
外置扬声器
SPKP:
ClassD的扬声器
SPKP:
ClassD的扬声器
SPKM:
ClassD的扬声器
SPKM:
ClassD的扬声器
特性:
立体声耳机DAC输出,
单声道耳麦ADC输入,
单声道DACclass-D4-Ω扬声器输出
支持重低音,高音,EQ
IIC的地址是:
0011000,支持快速模式,100K或400K
8-kHzto192-kHz采样频率
IIC用于控制芯片,IIS音频接口
DAC是用于输出的,ADC是用于采样外部音频的
24位立体声播放,单声道录音功能
支持I2S、左、右对齐格式
支持PCM协议
芯片有一个GPIO,是多功能引脚,可以配置为时钟输入
麦克风:
设置麦克风的电压,在page1register46中设置,可以设置到2.5V
时钟源:
时钟计算公式
当ADC时钟关闭,ADC的时钟从DAC来
最大的时钟输出?
还是最大支持的时钟配置?
IIC寄存器列表
页0:
主要用于配置:
数字I/O时钟,ADC和DAC设置等(控制芯片的基本寄存器)
页1:
PGA的模拟,ADC和DAC的输出驱动器,音量控制等
页3:
寄存器16控制在MCLK分隔、控制中断的脉冲持续时间,去抖时序,和检测块的时钟
页4~5:
ADCAGC的滤波系数
页8~9:
DAC的缓冲过滤器A和DRC系数
页12~13:
DAC的缓冲过滤器B和DRC系数
以下寄存器不管在哪个页,寄存器0都是配置开始页,也就是在访问寄存器前,先设置好寄存器0
先发出写命令,第1字节是配置页地址也就是0x00地址,第2字节是要操作哪个页,对应上面的页0、页1、页3等值
页0下的寄存器
寄存器0:
页选择寄存器
寄存器1:
软件复位寄存器,写1复位自动清零
寄存器3:
D1:
只读,=0代表过热保护,默认是1,正常操作
主输入的时钟源配置
寄存器4:
时钟选择
D2-D3:
PLL_CLKIN时钟输入选择MCLK、BCLK、GPIO1、DIN可以配置为这4种
D0-D1:
CODEC_CLKIN时钟输入选择MCLD、BCLK、GPIO1、PLL_CLK
PLL的配置
寄存器5:
PLL配置
D7:
=1开启PLL
D6–D4:
PLL分频P
D3–D0:
PLL倍频R
寄存器6:
D5–D0,也是配置PLL倍频J
寄存器7:
D5–D0,PLLD-VALMSB这个是小数点D
寄存器8:
D7–D0,PLLD-VALLSB
计算公式
设置DAC采样率
寄存器11:
DACNDAC分频的配置
D7:
DACNDAC分频开启
D6–D0:
DACNDAC分频值
寄存器12:
DACMDAC分频的配置
D7:
DACMDAC分频开启
D6–D0:
DACMDAC分频值
寄存器13:
DACOSRvalueDOSR(9:
8)
寄存器14:
DACOSRValueDOSR(7:
0)
寄存器15:
DACPRB指令数
寄存器16:
DACPRB插值比例
设置ADC采样率
寄存器18:
ADCNADC分频配置
D7:
=1开启NADC
D6–D0:
分频配置NADC
寄存器19:
ADCMADC
D7:
=1开启MADC
D6–D0:
分频配置MADC
寄存器20:
ADCOSRAOSR分频配置AOSR
寄存器21:
ADCPRB指令数
寄存器22:
ADCPRB插值比例
时钟输出CLKOUT从GPIO1或DOUT引脚输出
寄存器25:
CLKOUT时钟输出配置,选择要输出的时钟,
D0-D2:
选择要输出的时钟源
000:
CDIV_CLKIN=MCLK(devicepin)
001:
CDIV_CLKIN=BCLK(devicepin)
010:
CDIV_CLKIN=DIN(canbeusedforthesystemswhereDACisnotrequired)
011:
CDIV_CLKIN=PLL_CLK(generatedon-chip)
100:
CDIV_CLKIN=DAC_CLK(DACDSPclock-generatedon-chip)
101:
CDIV_CLKIN=DAC_MOD_CLK(generatedon-chip)
110:
CDIV_CLKIN=ADC_CLK(ADCDSPclock-generatedon-chip)
111:
CDIV_CLKIN=ADC_MOD_CLK(generatedon-chip)
寄存器26:
CLKOUT时钟输出
D7:
CLKOUTM时钟输出开启
D6–D0:
通过GPIO或DOUT要输出的频率分频
通过GPIO1或DOUT输出
声卡芯片的外围通讯接口配置
寄存器27:
解码器接口配置1
D7–D6:
解码器接口选择I2S、DSP、RJF、LJF,配置格式
D5–D4:
解码器接口的传输长度,16\20\24\32等几种长度选择
D3:
=1BCLK设置为输出,否则为输入,bclk是位时钟,在寄存器30中配置输出
D2:
=1WCLK设置为输出,否则为输入,帧同步信号
D0:
没有数据传输时,=1DOUT高阻抗开启,DOUT就是IIS的音频输出引脚
寄存器28:
在DSP模式下,WCLK信号的上升沿测量方式,是等待多少个clk后才有效
D7–D0:
位时钟偏移多少个bit开始认为是有效数据的开始
寄存器29:
解码器接口配置2
D5:
=1DIN-to-DOUT开启,IIS输入连接到输出
D4:
=1ADC-to-DAC开启,内部ADC连接到DAC
D3:
=1BCLK是否反向
D2:
=1芯片断电BCLKandWCLK激活
D1–D0:
选择BCLK引脚输出的时钟源配置,时钟从BDIV_CLKIN输入
00:
BDIV_CLKIN=DAC_CLK(DACDSPclock-generatedon-chip)
01:
BDIV_CLKIN=DAC_MOD_CLK(generatedon-chip)
10:
BDIV_CLKIN=ADC_CLK(ADCDSPclock-generatedon-chip)
11:
BDIV_CLKIN=ADC_MOD_CLK(generatedon-chip)
BCLK输出配置
寄存器30:
BCLK时钟配置
D7:
BCLK是否要输出,开启时钟
D6–D0:
要输出的分频
BCLK设置为输出,BDIV_CLKIN配置要输出的内容
允许2个独立处理器的音频数据通讯,参考
5.7.2PrimaryandSecondaryDigitalAudioInterfaceSelection
寄存器31:
芯片次要接口1
D7–D5:
BCLK从GPIO还是从DOUT引脚输出
D4–D2:
WCLK同上
D1–D0:
DIN只有00可以选择,没有选项了
寄存器32:
芯片次要接口2
D7–D5:
ADC_WCLK从GPIO1引脚获得
D3
D2
D1
D0
寄存器33:
芯片次要接口3
寄存器34:
IIC接收通用的地址
标志状态寄存器都是只读的
寄存器36:
ADC标志寄存器,只读
D7:
ADCPGAappliedgain=programmedgain
D6:
ADC的电源状态
D5:
AGCappliedgain=maximumapplicablegainbyAGC
寄存器37:
DAC标志寄存器,只读
D7:
左声道DAC电源状态
D5:
HPL电源状态最后级的驱动
D4:
扬声器电源状态最后级的驱动
D3:
右声道DAC电源状态
D1:
HPR电源状态最后级的驱动
寄存器38:
DAC标志寄存器
D4:
左声道,DACPGAappliedgain≠programmedgain
D0:
右声道,DACPGAappliedgain≠programmedgain
寄存器39:
溢出标志状态,只读
D7:
左声道DAC溢出
D6:
右声道DAC溢出
D5:
DAC移位寄存器溢出
D3:
Delta-SigmaADC溢出
D1:
ADC移位寄存器溢出
中断标志寄存器都是只读的
寄存器44:
中断标志,只读,DAC读取复位bit
D7:
HPL短路检测
D5:
耳机按钮按下会锁存,和寄存器46中的不一样
D4:
耳机是否插入会锁存,和寄存器46中的不一样
D3:
左ADC信号伐值大于DRC
D2:
右ADC信号伐值大于DRC
寄存器45:
中断标志ADC
D6:
ADC信号电压大于AGC
D4:
寄存器46:
中断标志,只读,DAC
D7:
D5:
耳机按钮按下瞬间检测和寄存器44中的不一样
D4:
耳机是否插入瞬间检测和寄存器44中的不一样
D3
D2
D1
D0
寄存器47:
中断标志ADC
中断控制寄存器
寄存器48:
中断1控制寄存器
D7:
耳机插入检测中断开启
D6:
按钮按下检测中断开启
D5:
DACDRC中断
D4:
ADCAGC中断
D3:
短路中断
D2:
D1
D0:
INT1中断产生的模式
寄存器49:
中断2控制寄存器
同中断1,只是中断为2号
GPIO控制寄存器
寄存器51:
D0:
GPIO输出0还是输出1
D1:
GPIO的输入值,用于读取
D5–D2:
GPIO的作用,
0000:
GPIO1disabled(inputandoutputbufferspowereddown)
0001:
GPIO1isininputmode(canbeusedassecondaryBCLKinput,secondaryWCLKinput,secondaryDINinput,ADC_WCLKinput,Dig_Mic_InorinClockGenblock).
0010:
GPIO1isusedasgeneral-purposeinput(GPI).
0011:
GPIO1output=general-purposeoutput通用GPIO输出
0100:
GPIO1output=CLKOUToutputCLKOUT输出
0101:
GPIO1output=INT1output中断输出
0110:
GPIO1output=INT2output
0111:
GPIO1output=ADC_WCLKoutputforcodecinterface
1000:
GPIO1output=secondaryBCLKoutputforcodecinterface
1001:
GPIO1output=secondaryWCLKoutputforcodecinterface
1010:
GPIO1output=ADC_MOD_CLKoutputforthedigitalmicrophone
1011:
GPIO1output=secondaryDOUTforcodecinterface
DOUTDINIO的功能
寄存器53:
用于配置DOUT功能
D4:
=0DOUT总线启用,如果是IIS,要打开,并且D3-D1设置为1
D3-D1:
000:
DOUTdisabled(outputbufferpowereddown)
001:
DOUT=primaryDOUToutputforcodecinterface
010:
DOUT=general-purposeoutput
011:
DOUT=CLKOUToutput
100:
DOUT=INT1output
101:
DOUT=INT2output
110:
DOUT=secondaryBCLKoutputforcodecinterface
111:
DOUT=secondaryWCLKoutputforcodecinterface
D0:
DOUT输出0或1
寄存器54:
用于配置DIN功能
D2-D1:
00:
DINdisabled(inputbufferpowereddown)
01:
DINenabled(canbeusedasDINforcodecinterface,Dig_Mic_InorinClockGenblock)
10:
DINisusedasgeneral-purposeinput(GPI)
寄存器60:
DAC指令设置
D4-D0:
DAC信号处理模块
寄存器61:
ADC指令设置
D4-D0:
ADC信号处理模块
寄存器62:
可编程数学模式控制位?
DAC音量控制,后面还有寄存器116和117
寄存器63:
D7:
左声道DAC,=1电源启动
D6:
右声道DAC,=1电源启动
D5-D4:
左声道DAC连接到,关闭,左声道,右声道,左声道和右声道同时
D3-D2:
右声道DAC连接到,同上,主要就是设置DAC的声音控制方式
D1-D0:
DACsoft-stepping音量控制
寄存器64:
音量控制主寄存器
D3:
DAC左声道是否静音
D2:
DAC右声道是否静音
D1-D0:
00,左右声道的音量分别由寄存器65、66控制
01:
左声道音量由右声道控制
02:
右声道音量由左声道控制
寄存器65:
左声道DAC音量控制
D7-D0:
左声道DAC音量控制
寄存器66:
右声道DAC音量控制
D7-D0:
右声道DAC音量控制
寄存器116:
DAC的声音控制方式配置
D7:
DAC音量控制用VOLIO还是用寄存器来控制
D6
D5-D4
D2-D0:
和VOLIO控制声音的有关
寄存器117:
只读,用VOLIO控制音量,的声音大小
耳机插入检测
寄存器67:
耳机插入检测
D7:
耳机插入检测使能
D6-D5:
只读,00,没有开启耳机检测,01:
没有检测到带麦克风的耳机插入,11:
检测到带麦克风的耳机插入
D4-D2:
耳机检测插入信号去抖动
D1-D0:
耳机按钮按下去抖动
DRC控制寄存器是否启用DRC,和DRC的一些参数配置
寄存器68:
DRC控制寄存器1
D6:
DRC在左声道使能
D5:
DRC在右声道使能
D4-D2:
DRCthreshold
D1-D0:
DRChysteresis
寄存器69:
DRC控制寄存器2
D6-D3:
DRCholdtime
寄存器70:
DRC控制寄存器3
D7-D4:
DRCattackrate
D3-D0:
DRCdecayrate
Beep控制寄存器
寄存器71:
左边Beep产生
D7:
Beep开关,=1开启
D5-D0:
左声道Beep音量,最小是2db
寄存器72:
右边Beep产生
D7-D6:
00:
左右声道有独立的音量控制
01:
左声道音量同时控制右边
02:
右声道音量同时控制左边
D5-D0:
右声道beep音量控制
寄存器73:
Beep响多少时间,为24位,所以使用3个寄存器来控制
寄存器74:
Beep响多少时间
寄存器75:
Beep响多少时间
SinCos寄存器决定了Beep的输出频率(Hz)
寄存器76:
BeepSin(x),高位
寄存器77:
低位
寄存器78:
BeepCos高位
寄存器79:
低位
ADC控制寄存器
寄存器81:
ADC数字MIC
D7:
ADC通道电源开启
D5-D4:
麦克风输入从,GPIO1或DIN
D3:
麦克风是否启用单声道的delta-sigma
D1-D0:
ADC的音量控制,
寄存器82:
D7:
ADC通道静音
D6-D4:
ADC音量控制微调
寄存器83:
ADC音量控制粗调
D6-D0:
音量粗调粗调
AGC控制寄存器
寄存器86:
AGC控制寄存器1
D7:
是否开启AGC控制
D6-D4:
AGC目标级别
寄存器87:
AGC控制寄存器2
D7-D6:
AGC迟滞设置
D5-D1:
寄存器88:
AGC最大增益
寄存器89:
AGC最大打击时间
寄存器90:
AGC衰变时间
寄存器91:
AGC噪音去抖
寄存器92:
AGC信号去抖
寄存器93:
ADCDC测量
寄存器102:
ADCDC测量1
D7:
DC测量开启,对单声道的ADC
寄存器103:
ADCDC测量2
寄存器104、105、106:
ADCDC的测量输出,只读寄存器
寄存器116:
见上面的描述
寄存器117:
页1下的寄存器好像主要是控制最后一级的驱动
寄存器30:
耳机和扬声器放大器错误控制
D1:
写0重启短路检测(HPLHPR)
D0:
同上,扬声器
驱动器的设置
寄存器31:
耳机驱动
D7:
耳机左边,=1上电,=0下电
D6:
同上,耳机右边
D4–D3:
Outputcommon-modevoltage
D2:
必须写1
D1:
如果启动耳机短路保护检测,短路后=0限制最大电流,=1停止输出驱动
D0:
只读,检测到耳机是否短路
寄存器32:
Class-D扬声器
D7:
开启Class-D扬声器,=1开始供电
D0:
只读,是否检测到Class-D扬声器短路
寄存器33:
HP输出驱动器
寄存器34:
OutputDriverPGARamp-DownPeriodControl
寄存器35:
DAC_LDAC_RDAC的混频器连接设置
D7-D6:
DAC_L路由到00:
没有路由,01:
左声道混频器,02:
直接驱动HPL
D5:
MIC1LP输入连接到左声道混频器,也就是说是否直接连接到衰减器,由衰减器直接控制输出,不经过声卡处理,
D4:
MIC1RP输入连接到左声道混频器,同上
D3-D2:
DAC_R路由到00:
没有路由,01:
右声道混频器,02:
直接驱动HPR
D1:
MIC1RP输入连接到右声道混频器,同D4的解释
D0:
HPL和HPR是否使用一样的输出模式,如果一样则HPL连接到HPR去
模拟的声音调节,是驱动级的上一级,可以根据设置寄存器35,D7-D6跳过此级,直接驱动下级,这里是衰减器的设置
寄存器36:
耳机左边声音大小衰减器
D7:
=0不输出到最末级
D6–D0:
声音大小
寄存器37:
耳机右边声音大小衰减器
D7:
=0不输出到最末级
D6–D0:
声音大小
寄存器38:
扬声器声音大小衰减器
D7:
=0不输出到最末级
D6–D0:
声音大小
最后一级的驱动声音配置,这里是最末级的音量控制
寄存器40:
耳机左边驱动,这个是最后1级的声音大小设置
D6-D3:
HPL驱动PGA声音大小
D2:
HPL驱动是否静音
D1:
寄存器41:
耳机右边驱动
D6-D3:
HPR驱动PGA声音大小
D2:
HPR驱动是否静音
D1:
寄存器42:
扬声器驱动
D4-D3:
扬声器的声音大小
D2:
扬声器是否静音
D0:
寄存器44:
耳机驱动控制
寄存器46:
MICBIAS
主要设置MICPGA
寄存器47:
MICPGA设置PGA增溢使用的
D7:
MICPGA控制在D6-D0位,或静音
D6-D0:
PGA的分贝
寄存器48:
选择哪种麦克风输入,并且连接多少的电阻,电阻越大噪音越小
D7-D6:
MIC1LP是否连接到MICPGA,也就是配置如何输入,芯片自己连接了多少kΩ的电阻
D5-D4:
MIC1RP是否连接到MICPGA,同上
D3-D2:
MIC1LM是否连接到MICPGA,同上
寄存器49:
选择混频器作为ADC输入
D7-D6:
CM是否连接到MICPGA
D5-D4:
MIC1LM是否连接到MICPGA
寄存器50
D7:
MIC1LP,连接到CM内部还是浮空
D6:
MIC1RP,连接到CM内部还是浮空
D5:
MIC1LM,连接到CM内部还是浮空
D0:
页3下的寄存器
寄存器16:
定时器时钟源,给音频芯片内部使用,用于产生1Mhz的频率给音频芯片
D7:
内部或外部MCLK做为定时器的时钟源
D6–D0:
如果使用MCLK做为时钟源,设置分频值
页4~5下的寄存器:
ADC数字滤波系数配置
2个8位寄存器,组成16位的寄存器,是16位有符号类型
在操作时总是先写高位,然后紧接着写地位,必须两个寄存器都写
页8~9下的寄存器:
DAC数字滤波,当DAC运行时,就无法读写
寄存器1:
自动DAC滤波buf的切换相关
D3:
只读
D2:
=1启用DAC自适应滤波控制
D1:
只读,自适应滤波控制缓冲区标志,=0处理块访问A接口,外部访问B接口,=1相反
D0:
自适应滤波器开关,如果D2=1,此位将自动设置
还有其他寄存器,是操作滤波的
页12~13下的寄存器和DAC滤波相关
电源:
耳机的电源在,page1寄存器31,的D7和D6位设置
扬声器在,page1寄存器32,D7位
我的笔记:
初始化流程
初始化PLL,配置好采样频率
初始化接口协议,采用IIS,和slot的数据大小,延时多少个Clk,bi