现在我的portapack已经带内置电池+开关和内置喇叭了,为了使它用起来更像一个对讲机,我打算装一个内置麦克风上去。
其实很久以前星天无线出的老款portapack是带有内置麦克风的,后来新款都把这个功能去掉了。
我现在打算把它加回去,我评估了一下,需要改软件和硬件。
软件部分我已上传至github,跟之前内置喇叭一样,我加了一个软件开关,软件开关可以切换使用3.5mm耳机带有的麦克风或内置麦克风。它具体的实现原理是根据AK4951声卡芯片的datasheet去使用56引脚,5引脚用来供电,6引脚用来接收声波信号输入。
除了更改软件,还需要更改硬件,5引脚上要接一个2k2电阻,6引脚上要接一个1u电容,然后两个引脚接到驻极体的正极,驻极体负极接地。
详细得过程如下:
这里摘录几张datasheet里的图片,我的软硬件修改就是基于这几张图片做的。
可以看到internal mic也就是内部mic用了MPWR1(电源)和LIN1 RIN1(左右声道输入)这3个引脚,接电源要经过电阻,接输入口要经过电容。并且这个电阻和电容可以参考external mic,应该是一样的。
上面的图可以看到,我们要用的MPWR1和RIN1 LIN1分别是芯片上的567这3个引脚。
根据这个图,目前的mic应该是只接了左声道(LIN2)和电源(MPWR2),没有接右声道(RIN2),为了简化焊接步骤,这样我打算内置麦克风也只接一个声道RIN1,。
接下来看一下datasheet,研究一下软件上如何启用我要的5、6引脚。
这是控制电源的,你可以找到原来代码mictx调用的打开麦克风函数,看一下本来用的mpwr相关的赋值应该是1,改为0就会把电源输出从mpwr2切换到mpwr1了。另外pmmp得是1,这样电源才会启用。你可以测试一下,当打开mpwr1后,可以在5引脚上测到2.4v电压。
这里是选择麦克风,本来代码里应该是0b01,因为用的是LIN2,现在要用LIN1/RIN1改为0b00即可。
其他剩下的修改就只是界面上的修改了,方便操作,可以直接在界面上切换要用的麦克风。
视频参见:
https://www.bilibili.com/video/BV16Q4y1A76r
我打了新的pcb,发现麦克风声波信号收不到,我把6和7引脚短路掉也就是,左声道和右声道接在一起才可以,我怀疑RIN1有问题,下次生产要接到LIN1上。我看了我的固件,实际这两个口都启用了。