Portapack应用开发教程(十一) 加入内置麦克风
现在我的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应用开发教程(十一) 加入内置麦克风相关推荐
- 解决win10笔记本内置麦克风不能用的历程和方法
PS:解决方法在文章最下方 起因 本来今天想着继续写CIM项目文章,但是想着如果配合文章,发一个讲解视频的话效果应该会更好,于是凭着编程的本能反应,第一步是看一看麦克风能不能用,毕竟之前为了唱歌一直把 ...
- python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)...
昨日内容回顾 1.三种引入方式1.行内js <div onclick = 'add(3,4)'></div>//声明一个函数function add(a,b){}2.内接js& ...
- 音视频技术开发周刊:FFmpeg内置的一个无中生有的音视频输入数据 | 214
每周一期,纵览音视频技术领域的干货. 新闻投稿:contribute@livevideostack.com 火山引擎视频云:坚持基础技术创新,打造极致用户体验 从toC到toB,作为抖音背后的视频技术 ...
- python内置函数open_Python学习教程:Python内置函数大总结(下篇)
这里接着上次的 Python学习教程,给大家总结了Python 剩下的33个内置函数. 31 hash() 返回对象的哈希值 In [112]: hash(xiaoming)Out[112]: 613 ...
- api 微信内置浏览器js_【微网站开发】之微信内置浏览器API使用
最近在写微网站,发现了微信内置浏览器的很多不称心的地方: 1.安卓版的微信内浏览器底部总是出现一个刷新.前进.后退的底部栏,宽度很大,导致屏幕显示尺寸被压缩 2.分享当前网站至朋友圈时,分享的图片一般 ...
- 微信公众号开发,清除微信内置浏览器缓存
在做微信开发的时候(主要是微信内网页或者比较大型的手机网站)的时候,更改了页面代码,但是微信内置浏览器有缓存,还是之前的效果,影响调试,而且还死活清除不掉!!!!!怎么办? 我的第一想法是关闭手机的微 ...
- java流控_t-io小教程:tio-http内置的流控功能
从事互联网应用平台的开发,安全一直是个工作量很大的领域,而流控则属于安全的一部分,为此tio-http特意内置了流控功能,我们来看看tio-http流控的使用步骤 1.实现SessionRateLim ...
- JavaScript知识点总结(十一)- 内置对象
目录 一.什么是内置对象 二.查询文档 2.1 MDN 2.2 如何学习对象中的方法 三.Math对象 3.1 Math概述 3.1.1 案例练习 - 封装自己的Math对象 3.1.2 Math绝对 ...
- 微信开发:JS自动关闭内置浏览器回到微信对话窗口
自动关闭当前浏览器内置函数: 直接调用即可 setTimeout('WeixinJSBridge.call("closeWindow")', 1500); 延迟执行可加可不加,按需 ...
最新文章
- This Gradle plugin requires a newer IDE able to request IDE model level 3.For Android Studio this
- many-to-many
- 谈身份管理之进阶篇 - 快速了解从管理到治理的最佳方案
- 流畅的python第一章_《流畅的Python》第一章学习笔记
- [SHOI2009] 会场预约
- 【正则表达式】正则表达式
- Dev TreeList常用用法
- idea 的精准搜索_intellij idea 的全局搜索快捷键方法
- cgroup学习(七)——cpu子系统
- 电脑计算机显示向程序发送命令时出现问题,Win7系统Excel向程序发送命令时出现错误怎么解决?...
- php正则表达式 w3c,正则表达式 – 匹配规则 | w3cschool菜鸟教程
- 人类能看懂的衍射光学(含基尔霍夫衍射,瑞利--索末菲衍射,夫琅禾费衍射,角谱衍射,菲涅尔衍射积分,菲涅尔衍射的S-FFT算法,T-FFT算法,D-FFT算法)
- 几种微弱信号处理电路
- java 报表工具_15个Java的报表工具简介
- Invalid bound statement (not found): com.zheng.mapper.UserMapper.login
- java 创建二维码 并加载显示到窗口
- Python中的迭代是什么意思?
- 都快2021年了,居然还有人不会MECE
- 2010年国家规划布局内重点软件企业认定名单
- 雅特力AT32F403A, 国产芯片PIN TO PIN 替代STM32F103