924ac97Word文档格式.docx

上传人:b****1 文档编号:5764372 上传时间:2023-05-05 格式:DOCX 页数:13 大小:1.26MB
下载 相关 举报
924ac97Word文档格式.docx_第1页
第1页 / 共13页
924ac97Word文档格式.docx_第2页
第2页 / 共13页
924ac97Word文档格式.docx_第3页
第3页 / 共13页
924ac97Word文档格式.docx_第4页
第4页 / 共13页
924ac97Word文档格式.docx_第5页
第5页 / 共13页
924ac97Word文档格式.docx_第6页
第6页 / 共13页
924ac97Word文档格式.docx_第7页
第7页 / 共13页
924ac97Word文档格式.docx_第8页
第8页 / 共13页
924ac97Word文档格式.docx_第9页
第9页 / 共13页
924ac97Word文档格式.docx_第10页
第10页 / 共13页
924ac97Word文档格式.docx_第11页
第11页 / 共13页
924ac97Word文档格式.docx_第12页
第12页 / 共13页
924ac97Word文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

924ac97Word文档格式.docx

《924ac97Word文档格式.docx》由会员分享,可在线阅读,更多相关《924ac97Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

924ac97Word文档格式.docx

电路图如下(P2):

44(DETECT)引脚检测耳机有没有插入,39,41为耳机插口,8是输入端口(放音),5是输出端口(录音),10是贞同步信号,11重启声卡。

5-11连接s3c6410主芯片(P4如下图),

6410P1140,P1151为AC寄存器,

P308配置GPD0-GPD4为声卡专用,GPDCON=0X44444;

设置AC_GLBCTRL寄存器:

AC_GLBCTRL|=1;

delay

(1);

AC_GLBCTRL&

=~1;

//冷启动,必须关掉,否则一直重启

AC_GLBCTRL|=1<

<

1;

=~(1<

1);

//热启动

2;

//祯同步使能

3;

//AC-Linkon使能AC_CODEC_CMD|=1<

23;

[29]位清PCM out中断,[12]位设置PCM out为PIO

方式,[21]位使能PCM out,(FIFOisempty数据发送完产生中断)。

还强调一点,声卡的声音不能调到0,现实中的调0其实是将[2]位置为0(AC-Linkon)。

P1153设置AC_GLBSTAT

[23]设置为1,可读,读声卡状态查看声卡有没有准备好。

只有当AC_GLBSTAT [2:

0]位为011:

Active时才能说明声卡初始化完成,才能进行下面的步骤。

[22:

26]位为要写入的命令地址,[15:

0]为要写入的数据。

下面看一看声卡手册,WM9714  P38

stereo(双声道立体声),与P1153 AC_CODEC_CMD配合。

0Ch DAC Volume 声音控制[15]为耳机屏蔽位,[14]为喇叭屏蔽位,[13]为单声道混音,[12:

8][4:

0]为左右声道声音大小(既能控制喇叭又能控制耳机)。

5Ch Additional Functions [7]位无输入自动关闭,20h DACTone Control声调控制,P4040hGeneralPurpose3D声音,P43 2AhExtendedAudioStat/Ctrl采样频率变化使能,如不使能,采样频率为固定值48KHZ,2ChAudioDACSampleRate 采样频率设置为44.1KHZ,

[7:

6][5:

4]分别为为耳机左右混音,选10(P54),

04h HeadphoneVolume为耳机声音调节,1Ch OutputPGAMuxSelect(P56)

选011,SPKMIX。

上图02h SpeakerVolume为喇叭声音调节,1Ch OutputPGAMuxSelect 不配置(没有接),out3/out4。

24hOutputVolumeMapping(JackInsert)第四位检测耳机有没有插入,如下图。

(P76)打开电源,26hPowerdown/Statusregister,3Ch Powerdown

(1),3Eh Powerdown

(2)全部置1,打开电源。

PLAY_MUSIC

P1152[13:

12]置1,选为PIO,[21]位置1使能。

AC_GLBCTRL|=(1<

12)|(1<

21);

P411查中断号,36号AC97interrupt,P1152AC_GLBSTAT查询[21]位判断是否中断,P1151清中断,AC_GLBCTRL [29]位。

第11章DMA

P384通过查询

ac97为6号中断源,P391为配置DMA的过程,如下图:

P158配置SDMA_SEL,SDMA_SEL|=1<

22;

,P393配置DMA通道,配哪个用哪个,如下图。

DMACC0SrcAddr=saddr;

//P401

DMACC0DestAddr=daddr;

DMACC0Control0=(1<

26)|(1<

25)|(2<

21)|(2<

18)|(1<

15)|(3);

//P401

DMACC0Control1=((len+3)>

>

2);

//传输长度对齐

DMACC0Configuration=(1<

11)|(6<

6)|

(1);

P401设置DMACC0Control0,如下图:

[27]每次读完数据后目的地址是否增加,[26]每次读完数据后源地址是否增加,[25]目的是内存还是外设,[24]源是内存还是外设,[23:

21]目的传输宽度,[20:

18]源传输宽度,[17:

15]目的突发长度,[14:

12]源突发长度,参考下图。

DMACCxControl1(P404)[24:

0]传输长度要对齐。

DMACC0Configuration(P405)[15]传输完成中断,[14]传输出错中断,[13:

11]选择流控及传输方式我们选01memory-to-periphera参考下图。

[9:

6]几号请求源我们是6号,[4:

1]源外设,[0]使能位。

最后重点看看第六步,

structnext_work{

unsignedintsaddr;

unsignedintdaddr;

unsignedintnext;

unsignedintcontrol0;

unsignedintcontrol1;

}next_lli;

next_lli.saddr=saddr;

next_lli.daddr=daddr;

next_lli.next=(unsignedint)&

next_lli;

next_lli.control0=(1<

next_lli.control1=((len+4-1)>

DMACC0LLI=(unsignedint)&

先定义一个结构体,以保证地址连续性,将下一个指向的目标指向自己,这样的话就可以一直循环了。

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

当前位置:首页 > 医药卫生 > 基础医学

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

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