首先 很感谢eepw给了我这次接触音频功放的机会 其实以前一直想弄音频 奈何手上没有什么设备 也不知道从何入手
这次我会用心去学习这个功放
进程导航
1,焊接加测试部分
2,按键控制部分
4,红外控制视频
5,发挥及创新:蓝牙传输音频,WIFI传输指令发出红外信号 实现远程无线控制
首先 很感谢eepw给了我这次接触音频功放的机会 其实以前一直想弄音频 奈何手上没有什么设备 也不知道从何入手
这次我会用心去学习这个功放
进程导航
1,焊接加测试部分
2,按键控制部分
4,红外控制视频
5,发挥及创新:蓝牙传输音频,WIFI传输指令发出红外信号 实现远程无线控制
焊接过程
开学收到板子后 搁了一段时间 这个周末没实验课 抽空把板子焊接完。
说干就干 上工具 开工~~
快递包裹的很好 元件真的是一个不少 。一个不多。。。。
先把3块芯片焊上,ssop和sop封装so easy 就是功放芯片的pad焊盘有单麻烦 正面刷锡不能太厚,不然芯片引脚不好焊。。
焊完后发现没有板子没有丝印 应该是为了美观吧 于是打开pdf版的丝印和bom表 开始撸贴片
经过2小时的焊接。。。(大神们莫笑)终于完成了
自我感觉焊的还不错。找来几个m3铜柱撑起来。
直流电源12.4V供电看了下 灯亮了,单片机部分应该没问题
明天去找跟3.5mm对录线 在写个按键控制的程序试下效果。
按键控制原理
又到周末了 今天把按键部分弄好了 从原理图得知 控制音量的是lm4811这块芯片 内部貌似是一个增益可以程控的运放 。 静音则是通过控制功放上的mute关闭运放输出的完成的
于是乎 找来lm4811的data sheet 大概是说 每次按键步进为3dB 共16个步进 从+12dB 到 −33dB
既然知道是程控的了 那么找来时序图
由板子原理图知道 clock和up/down分别接的是单片机的p3.3和p3.6
引脚宏定义和独立按键扫描就不贴了
控制部分时序代码
音量减同理 把 up/down引脚的值改成0就好
视频如下
视频地址:http://player.youku.com/player.php/sid/XOTI2MjM1NDM2/v.swf
不得不说 功放音质还不错 看了下技术文档 貌似在16V供电下可以带4欧的喇叭可以输出单边15W的功率。。
百度的时候看到这个功放被一些厂家用在电视机喇叭的输出级。
喇叭是从报废的音箱上拆下来的 毕竟小尺寸 低音打不出来 哈哈哈 但是能看到纸盆一震一震的 很带感~~
红外解码:
今天找来遥控器
读了几个键码
从示波器抓的波形来看 应该是NEC 编码的
于是把要用的几个按键读出来
红外遥控视频
视频地址:http://player.youku.com/player.php/sid/XOTYzMDIxMjM2/v.swf
sbit IR=P3^2;//红外接口标志
int irpro_ok,irok;// irpro_ok标志红外工作状态,irok进行红外处理的标志
unsigned char IRcord[4];//存储红外接收的原码值
unsigned char irdata[33];//存储每个电平的持续时间,用于以后判断是0还是1
unsigned char irtime; //红外用全局变量,用于计数2个下降沿之间的时间
/*-----------------------------------------------------------------------------
函数功能 : 红外初始化函数(0.5ms中断一次)
-----------------------------------------------------------------------------*/
void Ir_Init(void)
{
EA = 1; //打开总中断
//配置外部中断
IT0 = 1; //下降沿触发
EX0 = 1; //开启外部中断
//配置计时器
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x90; //设置定时初值
TH0 = 0xE8; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //允许计时器0中断
}
/*-----------------------------------------------------------------------------
函数功能 : 用于计数2个下降沿之间的时间函数
-----------------------------------------------------------------------------*/
void tim0_isr (void) interrupt 1 using 1
{
irtime++; //用于计数2个下降沿之间的时间
}
/*-----------------------------------------------------------------------------
函数功能 : 外部中断0服务函数
-----------------------------------------------------------------------------*/
void EX0_ISR (void) interrupt 0
{
static unsigned char i; //接收红外信号处理
static bit startflag; //是否开始处理标志位
if(startflag)
{
if(irtime<63&&irtime>=33)//引导码 TC9012的头码,9ms+4.5ms
i=0;
irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1
irtime=0;
i++;
if(i==33)//总共32位
{
irok=1;
i=0;
}
}
else
{
irtime=0;
startflag=1; //开始处理标志位
}
}
/*-----------------------------------------------------------------------------
函数功能 : 红外码值处理函数
-----------------------------------------------------------------------------*/
void Ircordpro(void)
{
unsigned char i, j, k,cord,value;
k=1;
for(i=0;i<4;i++) //处理4个字节
{
for(j=1;j<=8;j++) //处理1个字节8位
{
cord=irdata[k]; //判断存储每个电平的持续时间是0还是1
if(cord>7)//大于某值为1,这个和晶振有关系,这里使用12M计算,此值可以有一定误差但不影响0/1的判决
value=value|0x80;
if(j<8)
{
value>>=1;
}
k++;
}
IRcord[i]=value; //存储原码
value=0;
}
irpro_ok=1;//处理完毕标志位置1
}
创新部分:
1,音频信号使用蓝牙传输
2,红外信号使用智能插座发出 (插座与ipad之间通过wifi通讯)
创新点:安装好后完全摆脱线缆限制 可以用任何苹果设备远程控制
视频地址:http://player.youku.com/player.php/sid/XMTI0ODcxNDIyOA==/v.swf
视频是一手拿手机 一只手控制拍的 有点抖。。还请见谅。。。
蓝牙部分采用蓝牙转3.5mm音频模块 usb供电接上以前的otg线 引出电源和地接杜邦线可以直接插在功放板子上
红外部分 使用小k wifi智能插座 (就是视频开头部分的那个黑色的家伙)连接上wifi
通过学习功能 把已解码的红外按键的码学习一遍 然后自行编辑各个按钮
设置好后只要ipad有网 就可以控制功放的音量!
美中不足的是由于手头没有现成的音箱设备 只有一个小的喇叭 所以没法按照diy活动的要求将全套东西安装到其他设备里面。。。
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |