




免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.配置GPIO 并初始化l gpio_drv.c内的void GPIO_init(void) 进行初始化1. DRV_WriteReg(GPIO_MODE1,0x0000) 设置模式2. DRV_Reg(GPIO_DIR1) |= 0x00FF 设置方向 0 GPIOs are configured as input1 GPIOs are configured as output2.audio_pa配置音频对应Driver部分主要需要留意以下三支档案:afe.c AMP gpo settingaudcoeff.c 首先需要注意是的output channel的配置,配置错误将出现没有声音的现象。(见audio_驱动.pdf) 此文件需要注意output channel 、 FIR setting和echo参数的设置audcoeff_default.h 定义 语音增强参数nvram_default_audio.c 此文件主要配置各音阶的音量AUD_VOLUME_CTN :call waiting tone, error tone, warning toneAUD_VOLUME_KEY :keypad toneAUD_VOLUME_MIC :microphone inputAUD_VOLUME_FMR :FM radio soundAUD_VOLUME_SPH :speech sound (during phone call)AUD_VOLUME_SID :side tone (sound loop-back)AUD_VOLUME_MEDIA :music1. 设置模式,方向,上拉 gpio_drv.c 里配置2. afe.c 文件里void AFE_SwitchExtAmplifier( char sw_on )设置3. afe2.c 文件里void AFE_TurnOnExtAmplifier( void ) void AFE_TurnOffExtAmplifier( void )进行调用.3.触摸屏先初始化,后期是自动配置1. 在eint_var.c里看中断 2. touch_panel_spi.h 配GPIO 口3. touch_panel_spi.c Implement serial interface4. touch_panel_custom.c Set ADC and coordinate calibration4.FM 1. RDA5800_SerialComm.c 配GPIO 口2. RDA5800_drv.c 函数的实现5.跑马灯背光灯1. custom_equipment.c 或者 uem_gpio.c 中找 2. SN3726_LIGHT_LED3. lcd_backlight_set6.MT6318 driver1. pmic_custom.c2. Engineer mode3. *#3646633# =Device=PMIC7.工程模式参数1. CustResDef.h8.软件调speecher大小1. Audcoeff.c2. DG_DL_SPEECH = 0X1000 指 gain = 13. DG_MICPHONE = 0X1400 最大0x2000 gain = 29.项目(6225平台),原先做的900/1800双频,校准综测都是正常的。后来有需要改成850/1900频段,于是修改l1d_custom_rf.h里面的SWAP为1,软件重新编译后,用FLASHTOTL下载到机器里,开机,直接呼叫850/1900,一切正常,灵敏度都有-108左右。但是发现经过校准后(校准可以通过)屏幕上直接就没有信号了,不能呼出电话。用META测试,发射正常,但是接收通路好像不通。我们这边修改过校准的CFG和INI文件,都没有用处1. 請修改,然后用Meta 校准。2. Frequency Bank3. bank = 0x1210.ADC检测通路adc_channel.c11充电电阻设置a. 在校准文件里设置 .cfg文件b. chr_parameter.c 2.5,/*ADC_ISENSE_RESISTANCE_FACTOR*/ /*1/0.4*串电阻*/(公式1 除以 电阻值 为前面的值)c. pmic_custom.c 看配置的参数 例:CHR_CURRENT_45011. Traces UART端口设置 nvram_common_config.c12. MP3 采样率检测函数 av_bt.c 文件 av_bt_aud_info_to_cfg 可知.13.开机程序: BootupApp.c 关同程序: ShutdownApp.c14.G_sensor motion_sensor.c15. 关机USB 判断 usb_custom.cpwic.c void PW_PowerInit(void)mcucustomdrvmisc_drvpmic_custom.c#define AC_CHR_CURRENT CHR_CURRENT_450#define USB_CHR_CURRENT CHR_CURRENT_450另: static void CHR_USB_EINT_HISR(void) 充电中断函数請你們driver在 PWIC.C的如下函數中加延時.void PW_PowerInit(void)Comment:Dear customer,void PW_PowerInit(void)會調用PW_is_charger_usb_present()來判斷是chg還是USB開机。請在函數PW_is_charger_usb_present()中按如下修改:添加delay的那段代碼就好了/ use adc to distinguish between charger & usbUSB_Phy_Enable(USB_PHY_OWNER_BMT);/USB_PowerControl(KAL_TRUE);/ Add delay, We found there may be unstable effect when turn on USB power; need de-bounce timevolatile kal_uint32 debounce;for (debounce=0;debounce10000;debounce+);/DRV_Reg(DRVPDN_CON2_CLR) = DRVPDN_CON2_AUXADC;#if defined(_OLD_PDN_DEFINE_)DRV_Reg(DRVPDN_CON2_CLR) = DRVPDN_CON2_AUXADC;#elif defined(_CLKG_DEFINE_) / #if defined(_OLD_PDN_DEFINE_)DRV_Reg(CG_CLR2) = CG_CON2_AUXADC;#endif / #if defined(_OLD_PDN_DEFINE_)if(adc_channel对于 平台是MT6225,SW 版本是08B.W0852.a.进工模-音频-语音增强-LoudSp Mode先确认参数Speech_LoudSpk_Mode_Para16=96, 224, 5256, 0, 58197, 0, 400, 0, 4112,5365, 0, 0, 0, 0, 0, 0;红色的值先默认不动。b.确认audcoeff.c文件里的DG_DL_Speech=0x1000(0dB=20log(4096/4096);如果此值设置成0x7FFF(转化成10进制32767),增益就是20log(32767/4096)=18dBDG_Microphone=0x1400 算法同上这两个值是DSP里面的数字增益,与语音增强参数7不一样的,改大不仅容易失真,而且底噪会变大,所以请确认此值没有改动。c.请确认模拟增益不要设置过大,尽量不要超过112,最大也不要超过128。外部Audio PA的增益放大尽量不要超过4倍。进工模-音频-LoudSp Mode-Speech 确认。d.如果耳机模式下底噪不明显,那么请将免提模式下的AGC 关掉。在audcoeff_default.h中将define DEFAULT_AGC_MODE_LOUDSPK 4 语句的4改成0.AGC Mode Description0: The AGC is turned off.1: Non-Aggressive AGC. 2: Mid-Low aggressive AGC. 3: Mid-High aggressive AGC. 4: Most aggressive AGC. 2. 自动测试模式下 MIC 、REC 声音小-进工程模式-audio-normal mode-microphone-volume4在工程模式里面加大microphone 的vol4。进工程模式-audio-normal mode-Speech-volume4在工程模式里面加大这个值。这两个值最大是255,不过测试完之后,请将值 还原。因为:microphone 的vol4影响到录音的音量。Speech 的vol4影响到正常 通话第4级的音量。3.开关机铃声小,我要在软件里改哪些参数。-进工程模式-audio-normal mode-Melody-音量等级可以调节(调节的是audio buffer的模拟增益)在软件也可以修改:软件在nvram_default_audio.c#define GAIN_NOR_MED_VOL 3#define GAIN_NOR_MED_VOL0 16#define GAIN_NOR_MED_VOL1 32#define GAIN_NOR_MED_VOL2 48#define GAIN_NOR_MED_VOL3 64#define GAIN_NOR_MED_VOL4 80#define GAIN_NOR_MED_VOL5 96#define GAIN_NOR_MED_VOL6 1123. ADC 校准 CFG 文件里,MAX_VOLTAGE_DIFFERENCE = 0.04 MAX_CURRENT_DIFFERENCE = 0.04 这两个值是做什么用的,有时候检测电压与电池电压相差太多的话,我把它设为:0.01-这个是限定一个范围,在这个范围内都是正常的,其实是没有必要修改的。下面是ADC校准的流程,请参考:1. Command output voltage of power supply to ADC_V1.2. Measure output voltage of power supply. The output voltage is named as ADC_Measure_Voltage_0.3. Command the target to do ADC measurement using BATTERY_CHANNEL and CHARGER_CHANNEL. The measure count is ADC_MEASUREMENT_COUNT in configuration file. The measurement result is BATTERY_ADC_Output_0 and CHARGER_ADC_Output_0.4. Command output voltage of power supply to ADC_V2.5. Measure output voltage of power supply. The output voltage is named as ADC_Measure_Voltage_1.6. Command the target to do ADC measurement using BATTERY_CHANNEL and CHARGER_CHANNEL. The measure count is ADC_MEASUREMENT_COUNT in configuration file. The measurement result is BATTERY_ADC_Output_1 and CHARGER_ADC_Output_1.7. Calculate ADC slope and offset of BATTERY_CHANNEL and CHARGER_CHANNEL by the following formulaslope (BATTERY_CHANNEL) = (ADC_Measure_Voltage_1 - ADC_Measure_Voltage_0) / ( BATTERY_ADC_Output_1 - BATTERY_ADC_Output_0)offset(BATTERY_CHANNEL) = ADC_Measure_Voltage_0 - slope(BATTERY_CHANNEL)* BATTERY_ADC_Output_0slope(CHARGER_CHANNEL) = (ADC_Measure_Voltage_1 - ADC_Measure_Voltage_0) / (CHARGER _ADC_Output_1 - CHARGER _ADC_Output_0)offset(CHARGER_CHANNEL) = ADC_Measure_Voltage_0 - slope(CHARGER_CHANNEL) * CHARGER_ADC_Output_08.Apply slope and offset of all other ADC channel except CHARGER_CHANNEL to slope(BATTERY_CHANNEL) and offset(BATTERY_CHANNEL).9.Save slope and offset of all ADC channel to NVRAM.10.Get CHARGER_ADC_Predict_Voltage1 and BATTERY_ADC_Predict_Voltage1 by the following formulaBATTERY_ADC_Predict_Voltage1 = (offset(BATTERY_CHANNEL) + slope(BATTERY_CHANNEL) *BATTERY_ADC_Output_1) /1000000.0CHARGER_ADC_Predict_Voltage1 = (offset(CHARGER_CHANNEL) + slope(CHARGER_CHANNEL) * CHARGER_ADC_Output_1) /1000000.011.Calculate current difference by the following formulacurrent_difference = |BATTERY_ADC_Predict_Voltage - CHARGER_ADC_Predict_Voltage| / ADC_RESISTANCEIf current_difference is large than MAX_CURRENT_DIFFERENCE, ADC current difference check fail, abort ADC check procedure. Otherwise, ADC current difference check pass.Note: ADC_RESISTANCE, MAX_CURRENT_DIFFERENCE is specified in configuration file.12. Command output voltage of power supply to ADC_CHECK_VOLTAGE, ADC_CHECK_VOLTAGE is specified in configuration file.13. Measure output voltage of power supply. The output voltage is named as ADC_Measure_Voltage_2.14.Command the target to do ADC measurement using BATTERY_CHANNEL. The measure count is ADC_MEASUREMENT_COUNT in configuration file. The measurement result is BATTERY_ADC_Output_2.15.Get BATTERY_ADC_Predict_Voltage2 and CHARGER_ADC_Predict_Voltage2 by the following formulaBATTERY_ADC_Predict_Voltage2 = (offset(BATTERY_CHANNEL) + slope(BATTERY_CHANNEL) *BATTERY_ADC_Output_2) /1000000.016.Calculate the voltage difference by the following formulavoltage_difference = | BATTERY_ADC_Predict_Voltage2 - ADC_Measure_Voltage_2|If voltage_difference is large than MAX_VOLTAGE_DIFFERENCE, ADC voltage difference check is fail, Otherwise, ADC current difference check pass.17.Check slope(BATTERY_CHANNEL) and offset(BATTERY_CHANNEL) in the range. (i.e. MIN_BATTERY_ADC_SLOPE = slope(BATTERY_CHANNEL) = MAX_BATTERY_ADC_SLOPE, MIN_BATTERY_ADC_OFFSET = offset(BATTERY_CHANNEL) = MAX_BATTERY_ADC_SLOPE). If slope(BATTERY_CHANNEL) and offset(BATTERY_CHANNEL) is outside the range, ADC slope and offset check is fail, abort ADC check procedure. Otherwise, ADC slope and offset check is pass.Note:The value of ADC_V1, ADC_V2, ADC_CHECK_VOLTAGE, MAX_BATTERY_ADC_SLOPE, MIN_BATTERY_ADC_SLOPE, MAX_BATTERY_ADC_OFFSET, MIN_BATTERY_ADC_OFFSET,BATTERY_CHANNEL, CHARGER_CHANNEL, ADC_RESISTANCE, MAX_VOLTAGE_DIFFERENCE,MAX_CURRENT_DIFFERENCE and ADC_MEASUREMENT_COUNT is specified in section ADC table in configuration file.4.如果你有相关校准原理的文档,请发给我学习一下。上面是校准的流程,我举个例子来说明,应该可以很好的理解 ADC table ADC_V1 = 3400 ADC_V2 = 4200ADC_CHECK_VOLTAGE = 3600NORMAL_VOLTAGE = 3800CURRENT_LIMIT = 3000MAX_BATTERY_ADC_SLOPE = 5550MIN_BATTERY_ADC_SLOPE = 5250MAX_BATTERY_ADC_OFFSET = 1000000MIN_BATTERY_ADC_OFFSET = -1000000BATTERY_CHANNEL = 0 CHARGER_CHANNEL = 1ADC_RESISTANCE = 0.22MAX_VOLTAGE_DIFFERENCE = 0.04MAX_CURRENT_DIFFERENCE = 0.04ADC_MEASUREMENT_COUNT = 1000*ADC_V1 is the voltage of ADC calibration point1,unit=mVADC_V2 is the voltage of ADC calibration point2,unit=mVADC_CHECK_VOLTAGE is the voltage of ADC calibration check,unit=mVNORMAL_VOLTAGE is the voltage of power supply after calibration finish,unit=mVMAX_BATTERY_ADC_SLOPE is the maximum limitation of battery ADC slopeMIN_BATTERY_ADC_SLOPE is the minimum limitation of battery ADC slopeMAX_BATTERY_ADC_OFFSET is the maximum limitation of battery ADC offsetMIN_BATTERY_ADC_OFFSET is the maximum limitation of battery ADC offsetBATTERY_CHANNEL is the first channel to do ADC calibrationCHARGER_CHANNEL is the second channel to do ADC calibrationADC_RESISTANCE is the resistance when do ADC current limitation checkMAX_VOLTAGE_DIFFERENCE is the maximum voltage difference between voltage of power supply and estimated voltage,unit=VMAX_CURRENT_DIFFERENCE is the maximum current difference,unit=AADC_MEASUREMENT_COUNT = 1000 is the ADC measurement count*以下所有的数据均是自己根据校准的所假设的数据,不要作为参考对比数据。注意:BATTERY_CHANNEL 和CHARGER_CHANNEL 要选对ADC_RESISTANCE 充电电阻要与实际相符合自动校准具体校准流程描述如下:1.通过GPIB设置power supply 输出电压为3.400000V,实际可能程控电压可能有误差,所以再通过GPIB命令读出power supply 输出电压,假设为3.400840V2. 读出ADC转换之后的结果 BATTERY_ADC_Output0假设为619.900000读出ADC转换之后的结果CHARGER _ADC_Output0假设为619.9120003. 通过GPIB设置power supply 输出电压为4.200000V,实际可能程控电压可能有误差,所以再通过GPIB命令读出power supply 输出电压,假设为4.210300V4. 读出ADC转换之后的结果 BATTERY_ADC_Output1假设为 767.100000读出ADC转换之后的结果CHARGER _ADC_Output1假设为767.0235005.算出BATTERY_ADC_Slope=(4.210300-3.400840)*1000000/ (767.100000-619.900000)=5499BATTERY_ADC_OFFSET=3.400840*1000000-5499*619.9=-7990CHARGE_ADC_Slope=(4.210300-3.400840)*1000000/ (767.023500-619.912000)=5502CHARGE_ADC_OFFSET=3.400840*1000000-5502*619.912000=-99166. Start writting ADC slope and offset to flash- 开始进行ADC current limit check7. 再读出ADC转换一次之后的结果 BATTERY_ADC_Output2假设为767.234000计算BATTERY_ADC_Predict_Voltage=(5499*767.2340000-7990)/1000000=4.211030再读出ADC转换一次之后的结果 CHARGE _ADC_Output2假设为768.100000计算CHARGE _ADC_Predict_Voltage=(5502*768.100000-9916)/1000000=4.216170CURRENT_DIFFERENCE=|4.211030-4.216170|/0.22=0.023364 MAX_CURRENT_DIFFERENCE pass- 开始进行ADC voltage limit check8. 通过GPIB设置power supply 输出电压为ADC_CHECK_VOLTAGE 3.600000V,实际可能程控电压可能有误差,所以再通过GPIB命令读出power supply 输出电压,假设为3.599990V9. 读出ADC转换之后的结果 BATTERY_ADC_Output2假设为648.8434
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 女职工健康知识竞赛试题及答案
- 代付款三方协议书范本4篇
- 幼儿园装修工程预算与成本控制方案
- 2025年刀具的试题及答案
- 2025重庆大学核能技术创新研究院劳务派遣人员招聘2人备考练习试题及答案解析
- 2025海南三亚市吉阳区教育系统招聘编制教师(第10号)考试参考试题及答案解析
- 2025年国家税务总局海南省税务系统所属事业单位招聘20人备考练习题库及答案解析
- 2025年日记常见的题目及答案
- 2025重庆鈊渝金融租赁股份有限公司社会招聘备考练习试题及答案解析
- 2025年山歌鉴赏题目及答案
- 通信工程用电登高等高风险作业施工安全操作
- 邮政储汇业务员高级技师理论知识试卷
- 四川雅安市人力资源和社会保障局招考聘用编外工作人员【共500题附答案解析】模拟检测试卷
- 护理服务规范整改措施(共15篇)
- 幼儿园教育活动设计与实践 张琳主编 PPT
- 建筑施工过程中成品保护施工方案
- 西师版三年级上册数学全册教案(完整)
- 整理版第三届宁波国际海报双年展2004获奖作品选
- 关键过程(工序)和特殊过程(工序)管理办法
- 武术校本课程武术基本功
- 机械制造及自动化专业讲座
评论
0/150
提交评论