MTK音频和BMT简介.doc_第1页
MTK音频和BMT简介.doc_第2页
MTK音频和BMT简介.doc_第3页
MTK音频和BMT简介.doc_第4页
MTK音频和BMT简介.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

MTK音频和BMT简介.doc.doc 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MTK 音频和BMT简介1 音频的通路有两种: i. T卡-内存-DSP解码-PCM信号- 模拟基带(ABB)- 外部功放-输出 ii. FM/TV chip-模拟基带(ABB)- 外部功放-输出注:由于耳机功率相对较小所以在驱动耳机时只需要ABB内部的一级放大即可,二在驱动speaker的时候需要较高的功率所以需要经过一级外部功放。另外耳机的立体声是BB的两路信号(MP3_OUTR&MP3_OUTL)直接差分输出的而speaker只使用了其中的一路,另一路信号被舍弃。 由于音频信号经过数字和模拟两个阶段,所以对信号的放大可以分为数字增益和模拟增益。其中模拟增益依靠硬件电路完成,范围内线性度好不容易失真;而数字增益则是通过软件完成,该方式线性度差容易出现失真等问题。在Afe2.c文件中有函数void AFE_SetLevelVolume(kal_uint8 aud_func, kal_uint8 MaxAnalogGain, kal_uint8 step, kal_uint8 level)是通过改变模拟增益改变输出音量大小的函数。其原理是更改ABB中可编程放大器的放大倍数来改变声音的大小。而函数void AFE_SetOutputVolume( kal_uint8 aud_func, kal_uint8 volume1, kal_int8 digital_gain_index )则是通过调整数字增益来改变音量的。 Pcm编解码电路的任务是数字信号与模拟信号的转换 Pcm缓冲区的数据处理:在event_callback里收到MEDIA_DATA_REQUEST后按如下流程处理。a.PCM_Strm_Open; b. 调用setBuffer; c. 填数据; GetWriteBuffer d. 调用WriteDataDone; e. 调用FinishWriteData;f. 播放play(mdi_audio_play_string_with_vol_path)2.音频对应的驱动主要有以下文件:Afe2.c-AFE_GetOutputVolume(),AFE_SetLevelVolume(),Afe_turnonextamplifier(),afe_turnonextamplfier();Afe.c-afe_switchextamplifier(char sw_on)等audcoeff.c:此文件要注意outputchanal的配置,配置错误将没有声音出现const unsigned char L1SP_MICROPHONE1 = L1SP_LNA_0;const unsigned char L1SP_MICROPHONE2 = L1SP_LNA_1;const unsigned char L1SP_SPEAKER1 = L1SP_BUFFER_0;const unsigned char L1SP_SPEAKER2 = L1SP_BUFFER_ST;const unsigned char L1SP_LOUD_SPEAKER = L1SP_BUFFER_ST_M|L1SP_BUFFER_EXT;audcoeff_default.h: 定义语音增强参数;gpio_drv.c: 设置模式以及方向nvram_default_audio.c: 配置各音阶的音量,每个参数里有“音量0音量6”7个音量等级和16 Level Setting模拟增益调节GAIN_NOR_CTN_VOL /call wait toneGAIN_NOR_KEY_VOL /keypad volume;GAIN_NOR_MIC_VOL /microphone inputGAIN_NOR_GMI_VOL / fm radio sound GAIN_NOR_SPH_VOL / speech soundGAIN_NOR_SID_VOL /side toneGAIN_NOR_MED_VOL /music在l1audio.h中有如下定义。 #define L1SP_KEYTONE 0 / 按键音。#define L1SP_TONE 1 / 单音和弦。#define L1SP_SPEECH 2 / 语音。#define L1SP_SND_EFFECT 3 / 声效。#define L1SP_AUDIO 4 / MP3等#define L1SP_VOICE 5 / 录音#define L1SP_DAI 6 / 数字声音#define L1SP_FM_RADIO 7 / FM声音。手机里的音频参数有如下内容FIR = Finite filter, IIR= Infinite filter, 调整响应曲线ES = Echo suppression, 抑制回音AEC = Acoustic echo canceller, 消除回音AGC = Automatic gain control, 自动增益补偿NS = Noise suppression, 背景噪音抑制3.音频格式:MP3 MP3的全称是Moving Picture Experts Group Audio Layer III。简单的说,MP3就是一种音频压缩技术,由于这种压缩方式的全称叫MPEG Audio Layer3,所以人们把它简称为MP3。MP3是利用 MPEG Audio Layer 3 的技术,将音乐以1:10 甚至 1:12 的压缩率,压缩成容量较小的file,换句话说,能够在音质丢失很小的情况下把文件压缩到更小的程度。而且还非常好的保持了原来的音质。正是因为MP3体积小,音质高的特点使得MP3格式几乎成为网上音乐的代名词。每分钟音乐的MP3格式只有1MB左右大小,这样每首歌的大小只有3-4兆字节。使用MP3播放器对MP3文件进行实时的解压缩(解码),这样,高品质的MP3音乐就播放出来了。 WMAWMA (Windows MediaAudio)格式是来自于微软的重量级选手,后台强硬,音质要强于MP3格式,更远胜于RA格式,RealAudio RealAudio主要适用于在网络上的在线音乐欣赏,这些格式的特点是可以随网络带宽的不同而改变声音的质量,在保证大多数人听到流畅声音的前提下,令带宽较富裕的听众获得较好的音质。MIDI MIDI(Musical InstrumentDigitalInterface)MID文件并不是一段录制好的声音,而是记录声音的信息,然后在告诉声卡如何再现音乐的一组指令。CD *.cda格式,就是CD音轨。标准CD格式也就是44.1K的采样频率,速率88K/秒,16位量化位数,因为CD音轨可以说是近似无损的,因此它的声音基本上是忠于原声的,因此如果你如果是一个音响发烧友的话,CD是你的首选。4.“POP”噪声是指音频器件在上电、断电瞬间以及上电稳定后,各种操作带来的瞬态冲击所产生的爆破声。产生“POP”噪声的瞬态冲击通常是一种很窄的尖脉冲.如何消除pop音: 开始播放时的pop音:先输出音频,延迟一段时间后,再打开音频功放这种方式只是利用软件掩饰的指标方法,真正的消除应从硬件着手:比如减小输出端的偶合电容,改用桥式电路等; 5.音频放大器音频放大器分为A类、B类和AB类和D类以及k类放大器,一般情况下用D类放大器,因为效率高,体积小。设计的时候一般音频输入输出采用差分方式,双声道给耳机,偏置一路给功放。BMT充电介绍:1.电池充电相关文件:bmt.c chr_parameter.c2.充电有三个过程:预充电、恒流充电、恒压充电1) 当Vbat3.3V 属于预充阶段,在这个阶段充电跟电池还有多少电压没有关系,即使电池电压为0V也应该可以冲进电(一般正规厂商电池内部有保护电路,当放电到两点几伏时已经截止,不能放出电了),只要电池本身没问题!关键是确保BATDET脚是否处于低电平!手机充电是没有任何反应的。2) 当电池电压低于3.3V时,PMIC(电源管理芯片)不能提供Vcore、Vdd等电压,CPU处于关机状态,这时CPU是不工作的!手机是没有任何反应的,在这个模式只要BATDET脚通过下拉电阻置低,即可进行预充!充电电流Ipre=10mV/Rsense 现在MTK平台Rsense=0.33R, 可知Ipre=30mA2). 当3.3Vbat4.2V 进入恒压充电阶段,这个阶段电流逐渐变小,电压维持不变!当电流减小到接近为0时,CPU发出控制信号这时停止充电!以下为充电状态图: 3.当充电器插入时,亦即为PMIC充电模块提供了Vcharge电压,只要把PMIC的BATDET脚接地即可启动充电模块,这时会产生一个充电中断信号到CPU,通知CPU现在已经进入充电状态。这时PMIC会产生一个中断给CPU,CPU开始启动如下模块:一、ADC采样,主要是采集Vchrg,Vbat及从MOSFET漏极输出的电压。二、发消息给MMI层,让它显示充电状态及一些采样数据三、检测电池电压有没有超过保护电压及电池连接是否连接正确,如果有问题即可通过CHRCTRL(GPI031)切断充电电路!四、平时显示“充电器没有连接”警告,是因为PMIC的BATDET脚float(悬空),MOSFET没有打开,从而没有充电电流引起的PMIC 会通过电池BAT ID脚来判断要不要给电池充电,并不是用来区分是锂电还是镍氢电池!区别锂电还是镍氢电池是通过PMIC的BATUSE脚,低电平是选择锂电!我们目前使用的电池ID电阻是10k左右,只要电池三个脚都接到电池connector上,就可以通过电池ID电阻把BATDET脚接地,充电也就开始了(包括预充电)!插充电器后,只要把PMIC的BATDET脚接地,就可以保证有电流流入了,电池的电压只影响充电状态(比如是预充还是恒流充电),如果电池电压较低,只是预充的时间稍长一些,最多一两个小时应该可以完成预充电,进入恒流充电状态!一般电池都有自保护,一块合格的电池不应该会出现是0V的情况!附:1.当电池电压过低时,即进入锁定状态,用万用表测得电池两端的电压为0V!手机在低电压锁定后不能充电跟手机的充电电路没有关系!2.电池保护IC主要有过冲保护、过放保护、大电流保护等功能。3.锂电池不能把电全部放完,必须加保护IC,如果电池电压放电低于2V,就不能充进电了!4.电池被锁定后,需要激活电压把电池唤醒。 5.电池在低压时充不进去电,与电池厂家选用的保护IC有关! 在Chr_parmeter.c文件中有如下数据结构,其中定义了有关电池和充电部分的全部典型值。bmt_customized_struct bmt_custom_chr_def = #ifndef _CUST_NEW_ 31,/*GPIO_CHRCTRL*/ 14,/*GPIO_BATDET*/ 7,/*GPIO_VIBRATOR*/#endif /*_CUST_NEW_*/*charing parameters*/*Check Phy parameters,Maybe changed*/ 1100000,/*Typical_LI_BATTYPE*/ 锂电池典型值(容量) 1100000,/*Typical_NI_BATTYPE*/ 镍氢电池典型值(容量) 1000000,/*ICHARGE_ON_HIGH*/ 最大充电电流 0,/*ICHARGE_ON_LOW*/ 最小充电电流 1000000,/*ICHARGE_OFF_HIGH*/ /?50000 4050000,/*V_FAST2TOPOFF_THRES*/ 2500000,/*BATTMP_MINUS_40C*/ 1469409,/*BATTMP_0C*/ 520042,/*BATTMP_45C*/ 6000000,/*MAX_VBAT_LI*/ 锂电池最大VBAT值 5500000,/*MAX_VBAT_NI*/ 镍氢电池最大VBAT值 3400000,/*V_PRE2FAST_THRES*/ 250000,/*I_TOPOFF2FAST_THRES*/ /*250ma,TOPOFF-FAST*/ 快速充电关闭电流 120000,/*I_TOPOFF2FULL_THRES*/ /*120ma,TOPOFF-BATFULL*/ 正常充电关闭电流 4110000,/*V_FULL2FAST_THRES*/ /*BATFULL-FAST*/ 414557,/*V_TEMP_FAST2FULL_THRES_NI*/ /*50oC,FAST-BATFULL*/ 4050000,/*V_FULL2FAST_THRES_NI*/ 600000,/*FAST_ICHARGE_HIGHLEVEL*/ /*600ma,for table search*/ 快速充电最高限制电流 400000,/*FAST_ICHARGE_LOWLEVEL*/ /*400ma,for table search*/ 快速充电最低限制电流 4050000,/*V_PROTECT_HIGH_LI*/ 3800000,/*V_PROTECT_LOW_LI*/#if defined(_RGT_DRV_M100_) /M100 support Nokia charger 7000000, 诺基亚充电器电压 7v#else 6500000,/*VCHARGER_HIGH*/ 普通充电器电压为6.5v#endif 0,/*VCHARGER_LOW*/*Time delay*/* PRE CHARGE ,search table*/*TON = 3s,TOFF=2s*/ 3,/*PRE_TON*/ 2,/*PRE_TOFF*/* FAST CHARGE ,search table*/*TON = 3s,TOFF=0s*/ 3,/*TOPOFF_TON*/ 0,/*TOPOFF_TOFF*/ 6,/*BATFULL_TON_LI*/ /*unit : second*/ 0,/*BATFULL_TOFF_LI*/ 1,/*BATFULL_TON_NI*/ /*unit : second*/ 9,/*BATFULL_TOFF_NI*/ 6,/*BATFULL_TOFF*/ 10,/*BATHOLD_OFF*/ 5,/*ADC_ISENSE_RESISTANCE_FACTOR*/ /*1/0.2*/ 24, /*bmt_measure_discard_time*/ /*24 ticks*/ /ADC_CALIDATA adc_cali_param 以下为手机电压检测部分的ADC校准值 5524, 5524, 5524, 5524, 5524, 5524 , (23286), (23286), (23286), (23286), (23286), (23286) , /*ratio = adc_volt_factor/100*/ /const kal_uint16 adc_volt_factorADC_MAX_CHANNEL 50, 50, 50, 100, 50, 50 , /const kal_uint8 TONOFFTABLE62 = 7,1, 8,1, 9,1, 7,1,/*talk */ 8,1,/*talk */ 9,1/*talk */ , /const kal_int32 CurrOffset3 = 100000, /100ma 100000, 100000 , KAL_FALSE, /* enable checking temperature while charging */#if defined(_MT6253_PLATFORM_SUPPORT_) KAL_TRUE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论