A:
AW83118 EVB板的GAIN/SLV 排针,可以通过接跳线帽进入不同增益档位;
修改增益前,需保证主板处于下电状态,芯片上电之后增益档位会锁定,即上电后修改跳线帽接入不同增益档位时,增益是不会变化的,需要重新下电再上电才可以进入对应增益档位。
A:
1、AW83611/AW83612规格书标称了四种增益,通过0x03寄存器的bit7:6配置,默认是26dB增益
2、四档增益下,芯片内置输入电阻Rini分别如下:
3、如四档增益无法满足实际应用,可通过在输入电容和INN\INP之间串联外置输入电阻Rine(如下图),进而调整PA的整体增益,此时放大倍数计算公式如下(Rini阻值和I2C配置的增益档位对应):
AV=2*300K/(Rini+Rine),转换增益dB为:20lg(AV)
4、当使用legacy模式时(即未连接I2C时),PA默认是26dB增益,即Rini=30KΩ,放大倍数计算公式如下:
AV=2*300K/(Rini+Rine)=2*300K/(30K+Rine),转换增益dB为:20lg(AV)
A:1、 通过reg 10h和reg 11h和寄存器的CCx_OV_TH设置cc的电压检测阈值,可以先设置比cc最大电压略小的电压挡位。例如CC最大电压为3v,则CCx_OV_TH可以设置为101b(2.6v)。
2、 通过reg 16h的LPD_CHK_TIM_SET设置水汽检测时间阈值,设置的值越大,灵敏度越高。
A:通过reg 0Fh的bit7和bit8设置1,关闭M_CC1_OV和M_CC1_OV。同时reg 10h和reg 11h的CC_OV_TH设置一定要小于实际的cc最大电压。例如cc高电平为3V,CC_OV_TH可以设置为2.6V挡位。
A:PD触发DP投屏需要以下6个步骤:
1、DP投屏报文在功率握手完成之后,首先Host发出一次SVID请求,然后device回复自己的SVID,包含DP SVID(0xff)(DP out端查询是否支持DP SVID);
2、Host (dp out)发出discover Modes,此消息指定了Host支持的配置,devices进入模式请求,然后上报DP 能力(DP out端查询DP in 端的DP 能力);
3、Host(dp out)发送进入模式请求,devices回复模式进入确认;
4、Host(dp out)发送状态消息请求,devices回复状态消息确认,其中状态消息要包含相关信息;
5、Host(dp out)发出配置请求,devices确认配置请求;
6、dp in端(devices)发出attention状态消息更新热插拔检测(HPD)
7、以下2个接口可以获取艾为驱动中dp的能力(capabilities)和status
DisplayPortCaps_t platform_get_dp_mode(struct Port *port)
{
return port->DisplayPortData.DpPpCap;
}
DisplayPortStatus_t platform_get_dp_attention_status(struct Port *port)
{
return port->DisplayPortData.DpPpStatus;
}
A:首先排查该问题是否发生在电流抬升的过程,如下图,电流抬升之后出现175到180条报文无法识别的现象:
使用示波器抓取靠近艾为芯片端的cc上波形,可以发现报文之间有压差,如下图:
该问题是由于线缆的线阻较大,导致了大电流的时候cc的报文出现压差,该差异会导致报文无法识别。可以通过如下图方法优化该问题:
其中apdo_cur大于2A的时候调整寄存器,调整值=0x20-报文压差/17.5。
A:在充电的过程中,随着充电电流的抬升,可以在cc上测试到如下波形,发现该波形会导致报文不识别:
原因是PD通信使用双相标记编码(BMC),该编码方式的电平判决,不仅和电平阈值相关,还和实际的占空比相关。
如下图是双相标记编码(BMC)信号,当传输1的时候,需要在1UI中翻转一次电平。
由于实际项目中的cc信电平信号翻转不是直上直下的,如果信号整体下移,不仅会影响逻辑电平的判断,同时也会影响1UI中的占空比,如下图。
可以通过如下代码优化该问题,在不同的电流下使用不同的SDAC值。
其中apdo_cur大于2A的时候调整寄存器,调整值=0x20-报文压差/17.5。
A:当GPS灵敏度不达标时候,大家第一印象是找LNA供应商确认LNA有没有调试好? 当前市面上的GPS-LNA 都是集成度高的产品,可调的空间不多。通常只需要调试输入电感,厂家推荐匹配电感在实际电路稍做调试即可。对CN0的影响通常小于0.5dB。下面参考手机GPS框架分析如下
GPS的CN0常规数据参考,用-130dBm。(注:不同项目走线,物料插损、增益、NF有差异)
备注:GSP 信号弱,测试过程中GND连接不好可能存在较大误差,传导测试铜管接地建议:GND尽可能靠近信号处接地,GND必须有足够的过孔到PCB主地,选择的GND面积越大越好。
在多数字PA的应用中,常规应用是每个PA有独立的reset gpio,但有时候资源有限,需要多个PA共用一个gpio,例如,4个PA使用同一个reset gpio或者是4个PA每2个共用一个reset gpio等情况,针对这种应用,需要对驱动做些修改,修改点如下:
1、dts里节点中的reset配置全部加上;注:相同reset引脚号的设备树节点必须相邻
2、驱动代码按如下修改;
1)probe函数中的aw883xx_gpio_request以及aw883xx_hw_reset去掉返回值的判断,如下图红框中的修改;
2)修改aw883xx_gpio_request函数,增加黑色底纹的几行代码,修改如下;
int reset_gpio_request = -1;
static int aw883xx_gpio_request(struct aw883xx *aw883xx)
{
int ret = -1;
if (gpio_is_valid(aw883xx->reset_gpio)) {
if(aw883xx->reset_gpio != reset_gpio_request){
ret = devm_gpio_request_one(aw883xx->dev, aw883xx->reset_gpio,
GPIOF_OUT_INIT_LOW, "aw883xx_rst");
if (ret) {
aw_dev_err(aw883xx->dev, "rst request failed");
return ret;
}
reset_gpio_request = aw883xx->reset_gpio;
}else{
aw883xx->reset_gpio =-1;
aw_dev_info(aw883xx->dev,"rst gpio already requested.");
}
}
if (gpio_is_valid(aw883xx->irq_gpio)) {
ret = devm_gpio_request_one(aw883xx->dev, aw883xx->irq_gpio,
GPIOF_DIR_IN, "aw883xx_int");
if (ret) {
aw_dev_err(aw883xx->dev, "int request failed");
return ret;
}
}
return 0;
}
A:一、MTK平台参考Awinic算法压缩包内提供的awinic_audio_effect_porting.patch移植完算法后,编译出现下图的报错信息:
error: invalid operands to binary expression ('const vector<audio_devices_t>' and 'audio_devices_t')
1061 | if (mStreamAttributeSource->output_devices & AUDIO_DEVICE_OUT_SPEAKER) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~
报错原因:在安卓15平台两个变量的定义的类型不一致,output_devices是vector<audio_devices_t>类型,而 AUDIO_DEVICE_OUT_SPEAKER是audio_devices_t枚举值,不能直接对vector和枚举值进行位运算操作
原始方案:
output_devices和AUDIO_DEVICE_OUT_SPEAKER直接进行位运算判断音频流的输出设备中是否包含扬声器
修改方案:
使用平台的函数接口 hasTargetDevice()判断当前音频流的输出设备是否包含扬声器
修改参考
/************************************* awinic add ********************************************/
//#ifdef AWINIC_EFFECT_SUPPORT
if (hasTargetDevice(mStreamAttributeSource->output_devices, AUDIO_DEVICE_OUT_SPEAKER)) {
m_awinic.is_module_enable = true;
} else {
m_awinic.is_module_enable = false;
}
//#endif
/************************************** awinic add end ******************************************/
A:频繁断续充电一般是由于移植代码的时候定时器不准导致的,如果抓取power-报文可以看到如下图的消息包。此时应该排查和确认代码中platform_delay_10us接口中定时器的配置是否正确。
A:
1、需要检查接入的VIN是否符合VIN_UVLO<VIN<VIN_OVP。
2、VIN_FAULT寄存器状态位(0x09寄存器bit5)是读清机制的。在接入 VIN后,若不读清VIN_FAULT寄存器,该寄存器会一直锁存接入前的状态。所以接入VIN后第一次读取该状态位会读到VIN_FALUT。若VIN电压正常,第二次读取可以读到该异常状态位已被清除。
A:AW37504 稳态带载电流,OUTP 370mA,OUTN 220mA,可以通过03H、04H配置;
瞬态带载电流可以更大,us级别可以到400mA以上;
以OUTN 220mA为例,若输出电容22uF,瞬时电流 440mA,那么超出的220mA由输出电容提供;
最大压降0.5V,按公式ΔI=C*ΔU/ΔT,计算瞬态时间为 ΔT=C*ΔU /ΔI = 22*(10^-6)*0.5/0.22=50us
考虑到22uF是标称值,电容有偏压特性,如果按跌落0.5V,有效容值10uF来看,可以持续22us左右。
A:1,LDVCC pin可以接到VCSEL阳极。
LDVCC pin的作用,是VCSEL电流关断时LDOUT冲高的泄放路径。如果VCSEL阳极供电较高,关断时电流瞬间变化,导致LDOUT会有较高的电压上冲,超过接口耐压值。实测VCSEL阳极5V,电流4A时·,LDOUT上冲最高会到6.4V。所以若LDVCC pin不接,芯片虽然能工作,但也会有LDOUT烧坏的风险;
如果LDVCC pin和VCSEL阳极分开接,建议不能小于VCSEL阳极0.5V,不然会有LDOUT到LVDCC的漏电;
2,LDOUT电压,即落在芯片上的Dropout电压,正常工作时建议最小1V,才能满足IBIAS 1A和ISW 4A;
A:AW32001E看门狗复位VSYS时长为2s/4s可调,默认为4s。可通过0x01寄存器bit5调节。