由于音频芯片方案逐步切换至NAU88C22,有部分客户自制的底板出现了无法放音的情况,比较容易踩坑的是NAU88C22的音频切换部分。 NAU88C22的音频切换电路是由3脚(GPIO2)控制的, 插入耳机之前,AUD_INT和GND连接,NAU88C22的GPIO2电平状态为低,此时声音从sperker输出;插入耳机之后,AUD_INT和GND断开,GPIO2被上拉到3V3,电平状态为高,此时声音从耳机输出。 3脚的默认状态为高,也就是从耳机输出。在有些场景下,只需要用一种方式输出。
如果硬件上3脚已经被悬空,同时又只使用喇叭,可以在NAU88C22的手册当中找到GPIO极性设置。用于设置插拔检测极性的是NAU88C22的寄存器13。 以imx6ull为例,对应的设置在imx-nau8822.c当中,路径如下:
找到imx_nau8822_late_probe函数的以下位置:
可以看出,寄存器13的bit4和bit1的值为1,对应的是当GPIO2为1时,从耳机输出,GPIO2为0时,从喇叭输出。如果将寄存器13的bit5和bit0置1,可以实现极性反转,即GPIO2为1时,从喇叭输出,GPIO2为0时,从耳机输出。 修改后的代码:
|
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2025-1-4 18:44
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.