手把手教你做平板电脑17音频驱动实验教程.docx

上传人:lao****ou 文档编号:237097 上传时间:2023-06-15 格式:DOCX 页数:7 大小:98.65KB
下载 相关 举报
手把手教你做平板电脑17音频驱动实验教程.docx_第1页
第1页 / 共7页
手把手教你做平板电脑17音频驱动实验教程.docx_第2页
第2页 / 共7页
手把手教你做平板电脑17音频驱动实验教程.docx_第3页
第3页 / 共7页
手把手教你做平板电脑17音频驱动实验教程.docx_第4页
第4页 / 共7页
手把手教你做平板电脑17音频驱动实验教程.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《手把手教你做平板电脑17音频驱动实验教程.docx》由会员分享,可在线阅读,更多相关《手把手教你做平板电脑17音频驱动实验教程.docx(7页珍藏版)》请在第一文库网上搜索。

1、音频驱动实验疯壳嵌入式平板开发详情地址:https:fen.ke.dub/GeekMart/views/off1ine/android购买链接:https:fe-ke.c1ub/GeekMart/sufHnaDyD1ojsp视频地址:https:fen-ke.c1ub/GeekMCrtsuf5W0Cuz3pjsp官方QQ群:457586268音频实验教程第一节音频子系统简单介绍RK3128A1C3244如上图是音频模块CodeC和CPU连接框图,主要由三部分组成:I2C总线-CPU通过它实现对CodeC寄存器数据的读写。I2S总线-实现音频数据在CPU和CodeC间的通信。HP_DEC-实现检

2、测是否有HeadSet设备插入。第二节Iinuxworkqueue工作原理音频子系统的源代码中用到了一个概念:Workqueueo对于不了解的朋友,读代码可能会引起疑惑,所以这里做一个简单介绍。1inUX中的WorkqUeUe机制就是为了简化内核线程的创建,只是通过调用WOrkqUeUe的接口就能创建内核线程;并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化;WorkqUeUe是内核中实现简单而有效的机制,它显然简化了内核Daemon的仓IJ建,方便了用户的编程。工作队列(WorkqUeUe)是另外一种将工作推后执行的形式。它把工作推后,交由一个内核线程去执行,也就

3、是说,这个下半部分可以在进程上下文中执行。最重要的就是工作队列允许被重新调度甚至是睡眠。举个栗子:Ihndudemddeffindudestaticstructwofktructwork;staticSVuctworkqueue-scrctqueueNU11;staticvoidWOrfcjandIerdtructwork.struct*data)PfintkCworkhand1effunct1on.*);staticInUnIttert-init(voidqueuecreate.sig1ethre(J-workqueuehekwor1d*);If(Iqueue)gotoerr;Printk(

4、testin,INT.WORKAwork,work-handter);SChedU1e_work|&wodc);QUetIJWorIC(qc,&work);returnO;retm1;staticVOidaIttest.exit(vo1d)/destry.workqucuc(qucc;MODU1E-1ICNSE(GPt;modu1eJit(testjmt;modu1e.ewt(test-exit);第三节电路原理图介绍下图来源于文档3128_sdk_a02_20170325.pdf中第18页。图一、绿色框中是codec芯片自己检测是否有HeadSet设备插入的电路原理图,它是通过HPJdOOK

5、(HP_HOOK和HP_DEC是连在一条线上)与CPU的ADCNC)连接,这个有点类似于AD按键检测的功能;音频Codec模块是数据与控制分开的,所以有12c来控制Codec的寄存器的读写,数据通过2s总线进行传输。OECAVDD18CooECU7200A1C3224oeo08WaZOidSOoAMdSs00tfaooC8C2S_BC1COOeCI2S1RC参8DEC12S044CODeC3_oon&COOtCK2SBC1X30COOEjMC1K-MIC8AJS1IM1P*C1DATIN1JDMC2.DATJO1IN2PIN2N/JO2MC1K8C1K11RUKIDACDAT1ADCOAT1B

6、1CK21RC1K2DACOAT2ADCDAT2ONOdOZ0Q83CPVPPCPvteMONOPMOWON1OUTR1OUT1I1-.j.S帜-NDMICeSC1G1PonRQ1Do1EN第四节音频驱动代码结构$(dir)rk3128-sourcekerne1driversadcrk_headset_det.cHeadSet设备检测代码$(dir)rk3128-sourcekerne1soundsoccodecsrk312x_codec.c- -音频CodeC代码X:rk3128-studyrk3128-sourcekerne1soundsoccodecsrt3261.c- i2c控制代码S

7、(dir)rk3128-sourcekerne1soundsocrockchip- 12s数据传输代码第五节dts文件讲解&codec/spk_ct1_io=;/*SPK_CT1=GPIOO_D6*/spk-mute-de1ay=;hp-mute-de1ay=;rk312x_for_mid=;is_rk3128=;/*is_rk3128=*/spk_vo1ume=;hp_vo1ume=;capturevo1ume=;gpio_debug=;codec_hp_det=;status=disab1ed;;HeadSet配置文件rockchiheadsetdetcompatib1e=rockchip

8、headsetc1et*;Io-Channe1s=;rockchip,adc.va1ue.unp1ug=;rockchip,adc-va1ue-no-mic=;/nomicheadset.rockchip,adc.va1ue.mic.nokia;/nokiamichp.amp.en=;;2c配置文件rt3261:rt3261g1ccompatib1e=,rt3261,*;reg=0x1o;spk-num;modem-input-mode=;1out-to-modem.mode;spk-amp1ify=;SPkvo1,6fordown1inkIsBAD.p1aybackif1-data_cont

9、ro1=;p1ayback-if2-datavcontro1=;;2s配置文件rockc1p-rt3224compatib1e=,rockchiprt3261;/DA1-Digita1AudioInterface其实就是I2SPCMAC97dais(daiaudio-codec=;i2s-contro11er=;formati2sw;/continuous-c1ock;/bitc1ock-inversion;/frame-inversion;/brtc1ock-master;/frame-master;);dai1audio-codec=;i2s-contro11er=;format=dsp-

10、a;/continuous-dock;bitc1ock-inversion;/frame-inversion;/bitc1ock-master;/frame-master;);););第六节实验代码1.HeadSet检测原理类似于一个ad按键的功能。注意:这里如果要测试这个功能必须在codec中设置一个值:codec_hp_det=;=codec_hp_det=;增加两条测试信息到如下代码中。if(pdata-headset-p1ugin11pdata*isMic)if(pdataisMicHPrintk.withmicn);headset-status=B11HEADSET;/withmc.eke(printk(uwithoutmicn);headset-status=BIT_HEADSET_NO_MIC;)耳机检测状态的调试:catsysc1assswitchh2wstate0:无耳机插入1:带MiC耳机插入(四段耳机)2:不带Mic耳机插入(三段耳机)2.测试命令-amix用amix命令来调节音量amix110amix11120

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

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服