体声芯片TLV320AIC23的应用理工.docx

上传人:b****1 文档编号:10295162 上传时间:2023-05-24 格式:DOCX 页数:22 大小:251.43KB
下载 相关 举报
体声芯片TLV320AIC23的应用理工.docx_第1页
第1页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第2页
第2页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第3页
第3页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第4页
第4页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第5页
第5页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第6页
第6页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第7页
第7页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第8页
第8页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第9页
第9页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第10页
第10页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第11页
第11页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第12页
第12页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第13页
第13页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第14页
第14页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第15页
第15页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第16页
第16页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第17页
第17页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第18页
第18页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第19页
第19页 / 共22页
体声芯片TLV320AIC23的应用理工.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

体声芯片TLV320AIC23的应用理工.docx

《体声芯片TLV320AIC23的应用理工.docx》由会员分享,可在线阅读,更多相关《体声芯片TLV320AIC23的应用理工.docx(22页珍藏版)》请在冰点文库上搜索。

体声芯片TLV320AIC23的应用理工.docx

体声芯片TLV320AIC23的应用理工

第5章立体声芯片TLV320AIC23的应用

5.1TLV320AIC23芯片介绍

5.1.1TLV320AIC23特点介绍

TLV320AIC23是TI公司生产的具有高度完整模拟功能的高性能立体声音频编解码芯片,数模转换和模数转换采用采样数字插值滤波器,转换数据长度可以是16、20、24和32位,采样速率从8K到96K。

TLV320AIC23是便携数字音频播放和录音设备的理想模拟输入输出,其主要的特点有:

⏹高性能的立体声编解码芯片

1)90dB信噪比A/D转换器(采样率48kHz)

2)100dB信噪比D/A转换器(采样率48kHz)

3)1.42V~3.6V数字核供电,和TI公司DSP内核供电电压兼容

4)2.7V~3.6V缓冲和模拟供电

5)8kHz~96kHz采样速率

⏹软件控制通过TIMcBSP支持多种串行通行协议

1)兼容2线和SPI串行通信协议

2)能直接和TIMcBSPs相连

⏹音频数据输入输出是可编程音频接口兼容TIMcBSP

1)I2C兼容协议只需要一个McBSP为A/D和D/A进行通信

2)标准的I2C,高位或低位数据填充传输

3)16/20/24/32位数据长度

⏹具有完整的驻极体麦克风偏置电路和缓冲

1)低噪声麦克风偏置引脚在3/4AVDD为驻极体电容提供偏置电压

2)运放缓冲有可调的增益为1到5

3)控制寄存器可选择增益0dB或20dB

⏹立体声线输入

1)可编程增益

2)有模拟旁路

⏹A/D转换器有多个输入,可以是立体声线或麦克风

⏹立体声线输出

模拟混合器可以把D/A转换器和模拟旁路混合起来

⏹模拟量控制可以禁止

⏹高效率的耳机放大器

30mW在32Ω模拟供电电压为3.3V时

⏹灵活的电源管理,全部可以软件控制

1)在回放模式功耗23-mW

2)备用模式功耗小于150μW

3)掉电模式小于15μW

5.1.2TLV320AIC23内部结构框图

图5-1TLV320AIC23内部结构框图

5.1.2TLV320AIC23引脚安排

图5-2PW封装引脚安排(顶视图)

表5-1TLV320AIC23引脚功能说明

引脚

说明

名称

引脚号

I/O

GQE

PW

AGND

5

15

模拟地

AVDD

4

14

模拟供电正输入,典型值3.3V。

BCLK

23

3

I/O

I2C串行时钟位,在主机模式时,AIC23给DSP产生时钟,在从机模式下,时钟信号由DSP产生。

BVDD

21

1

缓冲器供电输入,电压范围从2.7V到3.6V。

CLKOUT

22

2

O

时钟输出脚,可以选择XTI输入的一倍频或1/2倍频,采样率控制寄存器位7控制其输出选择

12

21

I

控制端口锁存或地址选择,在SPI模式下,此引脚作为数据锁存控制端,在I2C模式下,作为7位地址最后一位。

DIN

24

4

I

I2C格式串行数据输入给D/A转换器。

DGND

20

28

数字地。

DOUT

27

6

O

I2C格式A/D转换器串行数据输出。

DVDD

19

27

数字供电输入,电压范围从1.4V到3.6V。

HPGND

32

11

耳机放大器供电地。

HPVDD

29

8

耳机放大器供电输入,典型值3.3V。

LHPOUT

30

9

O

立体声左声道耳机放大器输出,默认0-dB输出,增益从–73dB到6dB可调,每步1-dB

LLINEIN

11

20

I

立体声左声道输入,默认0-dB输入,增益从–34.5dB到12dB可调,每步1.5-Db。

LOUT

2

12

O

立体声左声道输出。

LRCIN

26

5

I/O

I2SD/A转换器字时钟信号,主机模式下,AIC23产生这个祯信号发送给DSP,在从机模式下,这个信号由DSP产生。

LRCOUT

28

7

I/O

I2CA/D转换器字时钟信号,主机模式下,AIC23产生这个祯信号发送给DSP,在从机模式下,这个信号由DSP产生。

MICBIAS

7

17

O

低噪声电压缓冲器输出,适用于驻极体电容麦克风的偏置电压,电压典型值等于3/4AVDD。

MICIN

8

18

I

驻极体电容麦克风输入,可以不用外部电阻。

MODE

13

22

I

串行接口模式输入,MODE=0,为I2C模式,MODE=1,为SPI模式。

NC

1,9,

17,25

未使用引脚,没有和内部相连。

RHPOUT

31

10

O

立体声右声道耳机放大器输出,默认0-dB输出,增益从–73dB到6dB可调,每步1-dB。

RLINEIN

10

19

I

立体声右声道输入,默认0-dB输入,增益从–34.5dB到12dB可调,每步1.5-dB。

ROUT

3

13

O

立体声右声道输出。

SCLK

15

24

I

控制端口串行时钟输入,在SPI和I2C模式下都作为串行时钟输入。

SDIN

14

23

I

控制端口串行数据输入,在SPI和I2C模式下都作为串行数据输入,也用于复位。

后选择控制协议

VMID

6

16

I

中心电压去耦输入,10μF和0.1μF电容并行接到此引脚,用于滤除噪声。

XTI/MCLK

16

25

I

晶体或外部时钟输入,用于为AIC23提供内部时钟源。

XTO

18

26

O

晶体输出,连接外部晶体,当使用外部时钟源时,此引脚不用。

 

5.1.3TLV320AIC23与C5509的硬件连接

TLV320AIC23与C5509的硬件连接如图5-3所示。

在模拟电路设计部分,麦克风输入信号经过电容C52、C55和电阻R75组成的滤波电路;音频线输入使用1/2分压电路和隔直流电容;耳机线和音频线输出使用电容进行隔直流。

将AIC23串行控制接口模式设成I2C模式,即22脚经过一个电阻后接地,数据输出输入接口和C5509的McBSP0相连接;其它要点请读者参照图进行研究。

图5-3TLV320AIC23与C5509的硬件连接图

5.2TLV320AIC23应用实验

5.2.1实验目的

⏹了解C55xDSPI2C接口、McBSP接口;

⏹了解立体声芯片TLV320AIC23;

⏹学习I2C接口、McBSP接口、AIC23的初始化;

⏹学习中断处理;

5.2.2实验设备

⏹PC兼容机一台;操作系统为Windows2000(或WindowsNT、Windows98、

WindowsXP)。

⏹计算机安装CCS5000或CCS_v3.1集成仿真环境;

⏹DSPC5509实验板和仿真器各一个;

⏹麦克风、耳机及相应的音频线;

5.2.3实验要求

用CCS集成仿真环境完成建立工程、源文件、命令文件,保存和添加文件到工程,编译、链接、运行和调试等。

使用观察窗口观察寄存器和存储器空间的内容以及输出波形的时域和频域图等。

5.2.4实验步骤

1.实验准备

参照第2章(如使用的仿真器不同,请参照其它相关资料)对CCS硬仿真进行设置;在断电下将仿真器和目标板相连,将仿真器和计算机相连;

将音频线连接,一端接到目标板的音频输入端J6,另一端可以接电脑声卡输出或别的音频输出端;

将麦克风接到麦克输入端子J5;

将耳机线接到耳机输出端子J7;

给目标板供上电,启动CCS,使用CCS连接仿真器。

2.新建立工程和相应的源文件、命令文件

新建五个汇编源文件和一个命令文件,并把这六个文件添加到工程,分别输入相应的内容,如图5-5所示。

图5-5

 

3.编译工程

编译过程中如有错误,修改错误,编译成功后,装载输出文件。

4.全速运行程序

全速运行程序。

使用电脑播放器播放音乐,戴上耳机,可以听到音乐和麦克风的声音。

5.观察音频信号的时序图

从CCSView观察窗打开图形属性对话框,如图5-6所示,参照其对话框进行相应地修改,修改好后点击OK确认,则可以看到如图5-7所示的波形图,图形上半部分为左声道声音的波形,下半部分为右声道声音的波形,可以暂停观察某一时刻的波形。

图5-6图形属性对话框

图5-7图形观察窗口中的左、右声道声音波形

5.2.5程序清单参考

1.主程序:

.mmregs

.def_c_int00

.defdata_w_r

.refsdram_init

.refi2c_init

.refi2c_disable

.refi2c_write

.refi2c_read

.refclkmd_init

.refaic23init

mcbsp0_pdp.set2800h/128

drr2.set0h

drr1.set1h

dxr2.set2h

dxr1.set3h

spcr2.set4h

spcr1.set5h

rcr2.set6h

rcr1.set7h

xcr2.set8h

xcr1.set9h

srgr2.set0ah

srgr1.set0bh

mcr2.set0ch

mcr1.set0dh

rcera.set0eh

rcerb.set0fh

xcera.set10h

xcerb.set11h

pcr.set12h

pcerc.set13h

pcerd.set14h

xcerc.set15h

xcerd.set16h

rcere.set17h

rcerf.set18h

xcere.set19h

xcerf.set1ah

rcerg.set1bh

rcerh.set1ch

xcerg.set1dh

xcerh.set1eh

spcr1_rrdy.set02h

length.set256

.bssdata_w_r,2

.bssleft,512

.bssright,512

STACK.usect".stack",200h

SYSSTACK.usect".sysstack",200h

.sect".vectors"

rsv:

;resetvector

B_c_int00;branchtoCentrypoint

NOP

.align8

.text

_c_int00:

amov#0,xdp

amov#STACK+100h,xsp

amov#STACK+200h,xssp

;initinterupt

bsetintm;colseinterupt

mov#1,@ivpd

mov#1,@ivph

mov#00h,@ier0;

mov#00h,@dbier0

mov#0,@ier1

mov#0ffffh,@ifr0;

mov#0ffffh,@ifr1;

callsdram_init

callclkmd_init

calli2c_init

callaic23init

callmcbsp0_init

mov#mcbsp0_pdp,pdp

wait_rx:

btst#spcr1_rrdy,port(@spcr1),tc1

bccwait_rx,!

tc1;tc1=0,wait

movport(@drr2),ac1

movport(@drr1),ac0

movac0,port(@dxr1)

movac1,port(@dxr2)

amov#left+length-1,xar6

rpt#length-1

delay*ar6-

amov#left,xar6

movac1,*ar6

;

amov#right+length-1,xar7

rpt#length-1

delay*ar7-

amov#right,xar7

movac0,*ar7

bwait_rx

ends:

b$

mcbsp0_init:

;slavemode

amov#0,xdp

mov#mcbsp0_pdp,pdp

mov#0,port(@spcr1);PuttheMCBSP0inrese

mov#0,port(@spcr2)

mov#0a0h,port(@xcr1);Configframeparameters32bit

mov#0h,port(@xcr2);singlephase,nodelay

mov#0a0h,port(@rcr1);Configframeparameters32bit

mov#0h,port(@rcr2);singlephase,nodelay

;Framesyncisactivehigh,

mov#03h,port(@pcr);dataclockedonrisingedgeofclkx

mov#01h,port(@spcr1);outofreset

mov#01h,port(@spcr2)

ret

.end

2.时钟模式寄存器CLKMD初始化程序:

.defpllmult

.defclkmd_init

.mmregs

clkmd.set0x1c00

clk_in.set12

cpu_clk.set144

pllmult.setcpu_clk*2/clk_in;pllmult<=31

ress.set0<<15

iai.set0b<<14

iob.set1b<<13

test.set0b<<12

pll_mult.set00000b<<7

pll_div.set01b<<5;Divideby2

pll_enable.set0b<<4

bypass_div.set00b<<2

breakln.set0b<<1

lock_b.set0b<<0

k_clkmd.setress|iai|iob|test|pll_mult|pll_div|pll_enable|bypass_div|breakln|lock_b

.text

_c_int00:

clkmd_init:

amov#clkmd,xar1

movport(*ar1),ac0

and#0ffefh,ac0;pll_enable=0

movac0,port(*ar1)

loop1:

movport(*ar1),ar0;readclkmd

and#1,ar0;

bccloop1,ar0!

=#0;lock_b=0?

mov#pllmult*128,ac0

mov#31*128,ac1;ifpllmult>31,plmult=31

minac1,ac0

or#k_clkmd,ac0

movac0,port(*ar1)

movport(*ar1),ac0

or#10h,ac0;pll_enable=1

movac0,port(*ar1)

rpt#30000

nop_16

nop

loop2:

movport(*ar1),ar0;readclkmd

and#1,ar0;

bccloop2,ar0!

=#1;lock_b=0?

ret

.end

3.C5509I2C接口初始化程序

.mmregs

.defi2c_init

.defi2c_disable

.defi2c_write

.defi2c_read

.refpllmult

icoar.set0x3c00

icimr.set0x3c01

icstr.set0x3c02

icclkl.set0x3c03

icclkh.set0x3c04

iccnt.set0x3c05

icdrr.set0x3c06

icsar.set0x3c07

icdxr.set0x3c08

icmdr.set0x3c09

icivr.set0x3c0a

icgpio.set0x3c0b

icpsc.set0x3c0c

;bitofi2cmoderegister

icmdr_free.set14

icmdr_stt.set13

icmdr_idleen.set12

icmdr_stp.set11

icmdr_mst.set10

icmdr_trx.set9

icmdr_xa.set8

icmdr_rm.set7

icmdr_dlb.set6

icmdr_irs.set5

icmdr_stb.set4

icmdr_fdf.set3

icmdr_bc_mask.set0

;bitofi2cstatusregister

icstr_nacksnt.set13

icstr_bb.set12

icstr_rsfull.set11

icstr_xsmt.set10

icstr_aas.set9

icstr_ad0.set8

icstr_res2.set7

icstr_res1.set6

icstr_res0.set5

icstr_xrdy.set4

icstr_rrdy.set3

icstr_ardy.set2

icstr_nack.set1

icstr_al.set0

icoar_oaddr.set0x007f

.text

i2c_init:

mov#icoar/128,pdp

mov#0h,port(@icmdr);clearicmdr,

mov#0,port(icimr);disableallinterupt

;moduleclockfrequncy=cpu_clk/(ipsc+1)

mov#pllmult,ar0

mov#31,ar1;ifpllmult>31,plmult=31

minar1,ar0

movar0,port(@icpsc)

;masterclockfrequeny=moduleclockfrequnecy/((icclkl+d)+(icclkh+d))

mov#10,port(@icclkl)

mov#10,port(@icclkh)

mov#icoar_oaddr,port(@icoar)

;icmdr_irs=1,icmdr_mst=1,

;TakeI2Ccontrolleroutofreset,putinmastermode

movport(@icmdr),ac0

or#1<<#icmdr_irs,ac0

or#1<<#icmdr_mst,ac0

movac0,port(@icmdr)

ret

i2c_disable:

;PutI2Ccontrollerinreset

mov#icoar/128,pdp

movport(@icmdr),ac0

mov#1<<#icmdr_irs,ac1

negac1

andac1,ac0

movac0,port(@icmdr);

ret

i2c_write:

;writedatatoslavedevice

;ar0isstoredcounterofdata

;ar1isstoredfirstdataaddress,

;ar2isstoredslaveaddress

mov#icoar/128,pdp

movar0,port(@iccnt)

addar1,ar0;ar0pointtotheend

movar2,port(@icsar);slavedeviceaddress

amov#icdxr,xar3

movport(@icmdr),ac0

bset#icmdr_stt,ac0;startbit=1

bset#icmdr_stp,ac0;stopbit=1

bset#icmdr_trx,ac0;transmittermodebit=1,transmittermode

movac0,port(@icmdr)

tx_data:

mov*ar1+,port(*ar3)

wait_tx:

btst#icstr_xrdy,port(@icstr),tc1

bccwait_tx,!

tc1;tc1=0,wait

cmpar0!

=ar1,tc1

bcctx_data,tc1

ret

i2c_read:

;readdatatoslavedevice

;ar0isstoredcounterofdata

;ar1isstoredfirstdataaddress,

;ar2isstoredslaveaddress

mov#icoar/128,pdp

movar0,port(@iccnt)

addar1,ar0;ar0pointtotheend

movar2,port(@icsar);slavedeviceaddress

amov#icdrr,xar3

movport(@icmdr),ac0

bset#icmdr_stt,ac0;startbit=1

bset#icmdr_stp,ac0;stopbit=1

bclr#icmdr_trx,ac0;transmittermodebit=0,receivemode

movac0,port(@icmdr)

read_data:

movport(*ar3),*ar1+

wait_read:

btst#icstr_xrdy,port(@icstr),tc1

bccwait_read,!

tc1;tc1=0,wait

cmpar0!

=ar1,tc1

bccread_data,tc1

ret

.end

4.aic23初始化程序

.defaic23i

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2