FAQ0100158: 音频芯片若I2C通信失败,如何排查?

1.测量芯片的供电和reset电平(若有reset pin),参考芯片手册

1)确定VDD电压是否正常

2)确定DVDD电压是否正常

3)确定reset pin电平是否正确

 

2. 检查I2C总线和地址的配置(设备树配置和PA的硬件配置保持一致):

设备树配置中确定I2C总线号及I2C设备地址(注意:I2C地址配置避免重复)

11.png

I2C总线号根据硬件原理图设计确认,芯片I2C设备地址(7位)根据硬件原理图设计中AD引脚的高低电平状态确认,详细查看对应芯片手册,以AW88264为例:

22.png


3.以上确认均无误,I2C通信还是失败,需抓取I2C读写波形,包括SCL、SDA、DVDD、reset pin(若有),通过波形确认I2C地址、ACK信号:

若I2C SCL、SDA一直为低电平,需确认是否有上拉电阻;

若I2C SCL、SDA一直为高电平,需确认平台I2C功能是否配置正确;

若I2C地址不对,需核对第二步dts中的配置;

若无ACK,需核对芯片供电、reset pin的配置;

33.png


4.若以上均确认无误,需排查焊接原因。

FAQ0100159: QCOM平台codec_probe未调用如何排查?

1.检查dai_link配置,以aw882xx为例说明

先同硬件确认PA的I2S接口实际连接到平台的哪一路I2S;

codec_dai配置是否添加到对应的dai_link下;

1)确认codec驱动注册的dai-name和平台dai-link配置的dai-name是否一致;

codec驱动中注册的dai-name:

cat sys/kernel/debug/asoc/codecs或sys/kernel/debug/asoc/components

1.png


平台dai-link配置:

2.png


2)确认是否在I2S对应的dai_link如QUAT_MI2S_RX和QUAT_MI2S_TX下修改codec dai name;

对于kernel-5.4以下的平台:

3.png


对于kernel-5.4以上的平台:

4.png


2.确认声卡是否注册成功

执行adb指令:

cat /proc/asound/cards

若如下示例显示no soundcards表明声卡未注册上

5.png

若声卡未注册,需抓取开机的kernel log,检索ASoC,根据相关报错分析;


若声卡正常注册,dai_link配置正确,log看还是未进入codec_probe,则需要确认所修改的dai_link是否有添加到声卡。

确认方式:分析machine_probe函数,确认所修改的dai_link是否有添加到total_links。

如下示例,修改的dai_link为msm_mi2s_be_dai_links,而machine_probe中读取”qcom, mi2s-audio-intf”不为0时才会添加msm_mi2s_be_dai_links。

6.png


查看声卡的设备树配置,如下列qcom,mi2s-audio-intf = <0>;的配置就会导致dai_links未被添加;需要修改为qcom,mi2s-audio-intf = <1>;

7.png

若以上配置均确认无误,codec_probe还是未调用,可提供kernel log和dai_link修改的patch给kok全站软件FAE分析。

FAQ0100160: MTK 4G平台codec_probe未调用如何排查?

1.检查dai_link配置,以aw881xx为例说明

1)确认codec驱动注册的dai-name和平台dai-link配置的dai-name是否一致;

codec驱动中注册的dai-name:

cat sys/kernel/debug/asoc/codecs或sys/kernel/debug/asoc/components

33.png


平台dai-link配置:

44.png


2)确认是否在"Ext_Speaker_Multimedia"的dai_link下修改codec dai name:

55.png


2.确认声卡是否注册成功

执行adb指令:

cat /proc/asound/cards

若显示no soundcards,表明声卡未注册上 

若声卡未注册,需抓取开机的kernel log,检索ASoC,根据相关报错分析;

若以上配置均确认无误,codec_probe还是未调用,可提供kernel log和dai_link修改的patch给kok全站软件FAE分析。

FAQ0100161: MTK 5G平台codec_probe未调用如何排查?

1.检查dai_link配置,以aw881xx为例说明

先同硬件确认PA的DATAI和DATAO分别使用的哪一路I2S;

codec_dai配置是否添加到了对应的dai_link下;

1)确认codec驱动注册的dai-name和平台dai-link配置的dai-name是否一致;

codec驱动中注册的dai-name:

cat sys/kernel/debug/asoc/codecs或sys/kernel/debug/asoc/components

10.png


平台dai-link配置:

11.png


2)确认是否在对应的dai_link下添加修改codec dai name:

12.png


2. 确认声卡是否注册成功

执行adb指令:

cat /proc/asound/cards

若显示no soundcards,表明声卡未注册上

若声卡未注册,需抓取开机的kernel log,检索ASoC,根据相关报错分析;

若以上配置均确认无误,codec_probe还是未调用,可提供kernel log和dai_link修改的patch给kok全站软件FAE分析。



FAQ0300222: AW32001A 自带的 NTC 功能能否实现 JEITA 标准?

AW32001A的NTC保护功能默认实现下面左图所示的功能,若实现JEITA标准,需要主控根据温度控制AW32001A充电电流实现。

8.png


FAQ0300223: AW32001A 的 NTC、PCB_OTP、芯片内部温度监测功能及热关断的区别是什么?

1. NTC功能和PCB_OTP功能

下表中的NTC(resistor-divided)可以理解为电池NTC功能。(EN_NTC:REG06[Bit7]、DIS_PCB_OTP:REG07[Bit7])

7.png

电池NTC、PCB_OTP功能在硬件连接上相同,都是使用NTC引脚的功能测量IC外部温度。跟芯片内部温度检测功能无关。

但电池NTC功能和PCB_OTP功能适用应用场景不同以及报错逻辑均不相同

a. 电池NTC功能:

主要应用场景:测量电池包温度,热敏电阻在电池包中,当电池包温度过高或者过低时关闭充电路径。

在该功能下NTC报错的逻辑是:充电时,NTC_Hot、NTC_Cold错误都报;不配置充电时(包括VBUS在位和不在位)NTC_Hot、NTC_Cold错误都不报。充电时,只要报温度故障,就会停止充电,但不会关断Q1及Q2的放电路径。

b. PCB_OTP功能:

主要应用场景:测量PCB温度,热敏电阻在PCB上。

在该功能下NTC报错的逻辑是:无论充电时(VBUS和VBAT都在位)还是不充电时(包括VBUS在位和不在位)都只报NTC_Hot错误。一旦报告NTC错误,Q1、Q2管都会被完全关断。

2. 芯片内部温度监测功能

实时监测芯片内部温度,超过设定的阈值Thermal regulation threshold(TJ_REG:REG07H[B5-B4])时,IC不会报错,而是会慢慢减少充电电流。

3. 热关断

芯片Die超过结温阈值150℃时,Q1、Q2会被直接关闭,此时可通过09H[4] THERM_SD查看状态。


FAQ0300224: AW32001A 的 NTC 引脚如何连接?

1.如果使用AW32001A的NTC功能,硬件连接如下:

6.png

上图中蓝色部分为芯片外部的电路连接,RF1和RF2是必须的,RNTC可以放在PCB或电池包内。

关于RF1和RF2的计算可以找kok全站的FAE获取相关计算工具。


2.如果不使用AW32001A的NTC功能,直接通过100K电阻上拉至VDD引脚。


FAQ0300255: Inrush 电流、软起动电流、带载启动电流,分别指的是什么?

1. Inrush 电流,指芯片启动瞬间,流入芯片的峰值电流。

  由于芯片内部及输出端电容迅速充电,所以该峰值电流远远大于稳态输入电流

2. 软起动电流,指通过软启动方式,芯片启动时的电流。

  软起动方式,是先恒流源输出一个固定电流,对芯片和电容充电完成后,再恢复到正常。

3. 带载启动电流,是指芯片在启动时,可以为负载提供的电流。

Inrush 电流如果过大,会拉低输入电压,要考虑对芯片和芯片同电源其它设备的影响;

软启动是减小Inrush 电流一种方式,是为了降低输入电压跌落;

带载启动电流是启动时负载可以抽取的电流,实际应用中也要考虑。

FAQ0200262: AW20144_20198_20216 REXT电阻怎么选择?

根据公式Imax = 选择合适的REXT电阻,(K=400)。

当REXT电阻≤3.33KΩ时,Imax = 120mA。

但Imax会被OCP限流,0x2A寄存器的bit5是OCP位,可以修改CS端限流值,75mA /120mA

5.png

4.png


FAQ0200275: AW3641E在打闪后再发一个脉冲,脉冲数是否会累加?

AW3641E在打闪后(time out后),只要EN一直为高后,再给EN发一个脉冲,脉冲计数会累加。

只有当EN拉低超过500μs后,脉冲数才会清零重新计数。

FAQ0200276: AW9656的效率曲线为什么存在明显的转折点?

AW9656是电荷泵升压的背光驱动,内置1X/2X自适应升压模式,当输入电压比较低时,芯片工作在2X模式,此时芯片内部电荷泵会将电压升压到两倍输入电压值,

由于两倍电压值会高于灯的Vf电压,多余的压差落在芯片上,因而效率比较低;当输入电压比较高时,芯片工作在1X模式,此时输入电压和Vf电压基本相等,落在芯片上的压差比较小,因而效率较高。

3.png

       图1 AW9656效率曲线

FAQ0200278: AW99703遇到PWM抖动导致闪屏怎么解决?

当遇到因PWM抖动导致的闪屏问题时,可通过配置寄存器08的bit[4:2]来解决,例如配置为“111”。

AW99703支持PWM数字滤波功能(数字迟滞),通过提高数字采样迟滞量,提高对PWM抖动的容忍度。当PWM抖动发生时,占空比变化的绝对值不作为有效输入(小于迟滞量),

从而消除闪屏现象,实现稳定输出。其中,寄存器08的bit[4:2]可以配置相应迟滞的bit数,共有8档可配,对应的占空比抖动绝对值和迟滞bit数对应关系如表1所示。迟滞bit数越高,可滤除的占空比抖动绝对值越大。

                        表1 PWM输入迟滞量对应表

22.png


FAQ0100284: 如何在不可拆机情况下通过频响曲线判断无分频网络产品立体声相位问题.

1)分别测量左声道频响,右声道频响,整机频响进行对比。麦克风正对产品中心,距离按照不同整机大小权衡,

例如如图手机20CM左右即可。测试过程中不要移动整机与麦克风的位置。

2)如整机低频截止频率,明显高于某一声道单独播放的截止频率,此时喇叭反相。截止频率关系如图,B的截止频率高于A。

1.png  22.jpeg


FAQ0500059: AW8646电流如何配置?

AW8646驱动步进电机时有两个电流设置,Imax与IFS

Imax:为系统能提供的最大输出电流,其计算公式为 1.jpg

IFS:配置芯片输出的电流大小,其计算公式为 2.jpg

在设计时,需要满足:

Imax > IFS ,否则会截顶,考虑到设计冗余,应当留出一定的裕量,如Imax ≥ IFS + 50mA

3.jpg 4.jpg

           图1:Imax > IFS 时,电流曲线正常                 图2:Imax < IFS 时,电流出现截顶     

FAQ0500063: 线性马达驱动做开机震动、关机震动应用时,有哪些注意事项?

考虑逻辑:芯片掉电或者异常复位后没有重新初始化,会导致关机状态下无法支持震动,重新开机软件配置后可以恢复。

1、使用过程中保持RSTN一直为高——手机关机也需要硬件保证为高电平。

2、使用过程中保持供电一直有效——手机关机,IC不掉电。

3、建议开关机时主动做一次复位、重新初始化动作——需要硬件GPIO可以控制RSTN状态变化。

4、开机后建议软件关闭trig模式,由AP统一通过调度不同的震动动作,关机前使芯片进入trig模式。

FAQ0300130: DCDC 中,输出端泄放电阻作用是什么,如何测量?应用中要注意什么?

泄放电阻作用:

为了给储能元件提供一个消耗能量的通道。

关断芯片时,输出端能量需要快速泄放,负载端也要快速下电,满足负载下电时序要求。

 

泄放电阻的测试方法:

  1.VIN 接电源,EN=0V,直接用万用表测量VOUT对地阻抗。

2.VIN=0V,EN=0V,VOUT接电源,通过R=U/I计算。


应用中注意点:

 若有泄放电阻,需要考虑实际应用中,负载会不会倒灌,增加漏电流,这种情况需要加隔离措施。

 因为有的负载不止一路供电,关断其中一路供电,其他供电可能会通过泄放电阻漏电。

FAQ0100156: 音频芯片若i2c_probe未被调用,如何排查?

(以数字PA aw882xx driver code为例

1.确认DTS中修改位置正确,编译生效

执行adb shell指令

cd /sys/firmware/devicetree/base/soc/或cd /sys/firmware/devicetree/base/进入目录,再根据PA所挂载的i2c总线号打开对应目录,目录下有aw882xx_smartpa的节点则编译生效。

以QCOM平台,i2c0为例:cd /sys/firmware/devicetree/base/soc/i2c@4a84000,可以看到有aw882xx_smartpa@34和aw882xx_smartpa@35,说明dts修改生效;

1.png

以MTK平台,i2c6为例:cd /sys/firmware/devicetree/base/i2c6@11f00000,可以看到有aw882xx_smartpa@34,说明dts修改生效;

22.png

若上述验证不通过,需要检查所修改的dts是否有被编译到;


2.确认驱动移植编译生效

kernel log检索i2c_init,若有“aw882xx_i2c_init: aw882xx driver version…”说明驱动移植编译生效;若未进入i2c_init,需要检查编译配置,驱动是否有编译到;

确认设备树配置的compatible属性和驱动定义的compatible是否一致;

(1)设备树的compatible:

3.png


(2)驱动(以AW882XX为例)中定义了多个compatible,有一个匹配即可;

4.png


不匹配,需要修改设备树,按照驱动定义修改一致。


FAQ0100162: 高通平台,如何确认算法集成所用json文件的位置?

4.png

在项目文件夹会有如下诸多平台信息:

5.png


其中有且仅有一个文件会被项目所使用并编译,未使用到的不会进行编译;

一般应用的文件和平台型号同名,特殊情况下需要自行查看相关Makefile中的指定编译目录;

额外参考方案:

检索所有custom_libs_cfg.json文件,将其进行错误改动;编译error,查看哪一个custom_libs_cfg.json报错,则可确定具体使用的文件。


FAQ0100163: 高通平台,如何确认kok全站算法库正确编译到镜像文件中?

1、编译完成后,系统会自动生成NON-HLOS.bin镜像文件,参考如图所示方法检索镜像文件中Awinic字段;

1.png

如有相关Awinic字段信息打印,则表示算法库已成功编译到镜像文件当中,使用fastboot flash modem NON-HLOS.bin命令将镜像文件刷入到modem分区当中。


2、如未打印如上”Awinic”的信息,修改OEM_ROOT的路径后再进行编译;

2..png


参考示例:

编译log中的OEM_ROOT=OEM_ROOT(/work/829-sm6350)+adsp_proc/hap/oem;若在build.py中更改为OEM_ROOT=OEM_ROOT+/hap/oem,则会导致编译不到算法库(awinic_sp放在/adsp_proc/hap/oem目录下)。

3.png



FAQ0100164: 高通平台,如何查看机器中所使用acdb文件的位置?

使用adb root?adb shell进入到手机目录下

放音乐的情况下,输入命令pkill audioserver后输入logcat |grep acdb命令,会有如下信息打印:

1.png

以参考图为例,即图中所使用的acdb文件在/vendor/etc/acdbdata/MTP/trinket-miami-snd-card目录下。

隐私政策 | 使用条款

? Copyright 2008-2021 上海kok全站电子技术股份有限公司 |   沪ICP备10011954号??Powered by IT

友情链接:贝博体育app官网登录-贝博网-贝博体育app官网登录  雅博体育app下载_主页  LPL押注app_首页登录  海德体育|海德体育APP  365足球直播官方网站_365足球直播官方网站  PG电子平台_PG电子游戏_PG电子官网  lpl竞猜-首页  bt365体育平台_首页  LPL夏季赛下注网站 - LOL外围网站  球王会体育APP下载平台_入口_球王会体育APP下载官方官网