现在我的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上。我看了我的固件,实际这两个口都启用了。

Portapack应用开发教程(十一) 加入内置麦克风相关推荐

  1. 解决win10笔记本内置麦克风不能用的历程和方法

    PS:解决方法在文章最下方 起因 本来今天想着继续写CIM项目文章,但是想着如果配合文章,发一个讲解视频的话效果应该会更好,于是凭着编程的本能反应,第一步是看一看麦克风能不能用,毕竟之前为了唱歌一直把 ...

  2. python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)...

    昨日内容回顾 1.三种引入方式1.行内js <div onclick = 'add(3,4)'></div>//声明一个函数function add(a,b){}2.内接js& ...

  3. 音视频技术开发周刊:FFmpeg内置的一个无中生有的音视频输入数据 | 214

    每周一期,纵览音视频技术领域的干货. 新闻投稿:contribute@livevideostack.com 火山引擎视频云:坚持基础技术创新,打造极致用户体验 从toC到toB,作为抖音背后的视频技术 ...

  4. python内置函数open_Python学习教程:Python内置函数大总结(下篇)

    这里接着上次的 Python学习教程,给大家总结了Python 剩下的33个内置函数. 31 hash() 返回对象的哈希值 In [112]: hash(xiaoming)Out[112]: 613 ...

  5. api 微信内置浏览器js_【微网站开发】之微信内置浏览器API使用

    最近在写微网站,发现了微信内置浏览器的很多不称心的地方: 1.安卓版的微信内浏览器底部总是出现一个刷新.前进.后退的底部栏,宽度很大,导致屏幕显示尺寸被压缩 2.分享当前网站至朋友圈时,分享的图片一般 ...

  6. 微信公众号开发,清除微信内置浏览器缓存

    在做微信开发的时候(主要是微信内网页或者比较大型的手机网站)的时候,更改了页面代码,但是微信内置浏览器有缓存,还是之前的效果,影响调试,而且还死活清除不掉!!!!!怎么办? 我的第一想法是关闭手机的微 ...

  7. java流控_t-io小教程:tio-http内置的流控功能

    从事互联网应用平台的开发,安全一直是个工作量很大的领域,而流控则属于安全的一部分,为此tio-http特意内置了流控功能,我们来看看tio-http流控的使用步骤 1.实现SessionRateLim ...

  8. JavaScript知识点总结(十一)- 内置对象

    目录 一.什么是内置对象 二.查询文档 2.1 MDN 2.2 如何学习对象中的方法 三.Math对象 3.1 Math概述 3.1.1 案例练习 - 封装自己的Math对象 3.1.2 Math绝对 ...

  9. 微信开发:JS自动关闭内置浏览器回到微信对话窗口

    自动关闭当前浏览器内置函数: 直接调用即可 setTimeout('WeixinJSBridge.call("closeWindow")', 1500); 延迟执行可加可不加,按需 ...

最新文章

  1. 潮州市云计算数据中心挂牌 粤东地区规模最大
  2. 一种基于分层聚合的3D实例分割方法(ICCV 2021)
  3. Zookeeper分布式一致性原理(八):Zookeeper典型应用场景
  4. Spring Bean范围
  5. 混凝土墙开洞_新乐专业混凝土切割报价适中
  6. 什么是软件开发模式?
  7. wget 下载 设置cookie
  8. 单片机12864带字库汇编使用教程
  9. python结巴分词代码_结巴分词Python代码
  10. Windows解压tar.gzip文件
  11. 借助WinPE进行Windows系统安装
  12. Android仿淘宝头条垂直滚动,垂直走马灯,公告
  13. 胡阳pyhton作业题--20150728
  14. PS 2019 Mac版 自学入门系列(十)—— 自定义黑白
  15. PanDownload作者被抓,为何大家都对百度网盘如此气愤?
  16. 系统镜像的方法,大批量电脑重装的方法
  17. linux 修改vg名称,hp-ux 修改vg属性 | 旺旺知识库
  18. #XDOJ 172 构造表达式
  19. Ceph 认证授权和RBD块存储、对象存储使用(三)
  20. PHP来客在线客服系统源码 带安装教程

热门文章

  1. JavaScript如何输入输出之如何使用JavaScript优雅编程
  2. 试用python库meteva(气象行业)
  3. 自古猛兽皆独行,唯有牛羊结成群
  4. Linux unrar命令如何按目录解压rar文件
  5. 2021年第十二届蓝桥杯省赛C/C++B组题解总结
  6. 数据结构—约瑟夫环问题(C语言版)
  7. 如何防御DDoS等流量攻击?
  8. BSP和MapReduce有什么区别?
  9. 常见的开发模式和不常见的开发模式
  10. 信息及信息技术概述(一)