【2015/03/27】
板子上所带硬件程序全部调通,程序分好几块,太长就不贴了,提供附件供大家下载,视频也暂时不放,买了一对喇叭等回来做个小音箱再放视频
程序实现功能:
1、音源输入检测,有音源输入GLED亮,无输入灭。
2、开机音量50%
3、红外遥控音量、静音
4、按键控制音量
程序见附件
【2015/03/24】
MCU到了,换上后证明是单片机坏了,上午没课抽了点时间把程序完善一下
主要增加了音量加减的操作,把这部分子程序贴出来给大家看一下
void Vol_ctrl(int i) { if(i == 0x01) { while(!MUTE_KEY); MUTE = ~MUTE ; STDOWN = ~MUTE ; MUTE_FLAG = ~MUTE_FLAG ; } if(i == 0x10) { while(!ADD_KEY); UPDOWN = 1 ; delayus(10); CLOCK = 1 ; delayus(100); CLOCK= 0 ; delayus(110); UPDOWN = 0 ; i=0x00 ; } if(i == 0x11) { while(!SUB_KEY); UPDOWN = 0 ; delayus(10); CLOCK = 1 ; delayus(100); CLOCK= 0 ; delayus(100); i=0x00 ; } }
音量加减看LM4811的PDF 有时序
到此板子基本功能就实现了,下一步准备做红外遥控,用NEC协议的遥控器
【2015/03/22】
开始调试程序了。
1、电路板测试
根据之前的电路分析知道只要LM4811和TPA3110D2能工作就有声音,同时通过LM4811的手册可知道声音增益控制不需要时钟信号,也就是说只要STDOWN 和 MUTE均为低电平时候就能工作。
测试代码:
#include 'reg52.h' sbit MUTE = P1^4 ; //控制TPA3110D2为高阻态or输入 sbit STDOWN = P3^7 ; //LM4811待机,高电平有效 void main() { MUTE = 0 ; STDOWN = 0 ; while(1) ; }
此时输入音频信号应有音频输出,证明板子工作正常。
2、按键设置
先看代码
void keyscan() { if(MUTE_KEY == 0) { delayus(10); if(MUTE_KEY == 0) Vol_ctrl(0x00); } if(ADD_KEY == 0) { delayus(10); if(ADD_KEY == 0) Vol_ctrl(0x01); } } void Vol_ctrl(int i) { if(i == 0x00) { while(!MUTE_KEY); MUTE = ~MUTE ; STDOWN = ~MUTE ; MUTE_FLAG = ~MUTE_FLAG ; } if(i == 0x01) { while(!ADD_KEY); UPDOWN = 1 ; delayus(10); CLOCK = 1 ; delayus(100); CLOCK= 0 ; delayus(110); UPDOWN = 0 ; } }
先把单片机各个引脚定义好,方便写程序,然后先执行CHECK,检测是否有输入,当有输入的时候还要看是否按下了静音键,当按下静音键的时候MUTE_FLAG取反,保证锁住MUTE 和 STDOWN的状态。有输入且没静音的时候两放大器工作,LED常亮。
再看扫描按键程序,当有按键按下后延时消抖。当静音键按下的时候i=0x00,此时进入声音控制子程序,等待松开静音键,MUTE、STDOWN和MUTE_FLAG取反,静音,且不进行扫描程序,等待再次按键。
暂时进行到这里,写完了0x01加声音的子程序完了单片机就各种下不进去程序,已经烧进去的程序还都正常,估计是单片机废了,刚买了10个估计又得好几天能到,唉~~~~
【2015/03/21】
零件包终于到了,先吐槽下快递,这个速度,不敢恭维啊,,,,
收到的包裹,再次吐槽快递太慢了。。。。。
这个图是焊盘的丝印,方便焊,下面有源文件可下载
焊完的效果
焊接工具:高迪925焊台+风枪,超声波清洗炉,用来清除板子上的松香。
焊接没什么特别注意的,手工焊焊点稍微饱满点,防止虚焊,虽然理论上说这种半高频电路焊点会有电容作用,忽略吧~~~
焊接这个可以先在底下散热层铺薄锡,然后用风枪吹上固定好后再拖锡把引脚焊上。
焊接完毕,准备开始测试了~~
【2015/03/17】
一、电路分析
零件包昨天晚上发货了,在还没到的时候分析下整个电路,少走点弯路
1、电源部分
这部分没什么好说的,J1电源插头,输入12V,两个肖特基二极管SS26做高频整流,整流后输出一路VCC12V电压,再一路经7805降压为+5V,C1 C2 C3 C4做滤波。
2、耳机接口部分
PHONEJACK STERO SW 一个带开关的立体声耳机插头,当不插耳机的时候,VDD5经R5 R6 R4 R8 R9 对地,CHECK电压值约(1.8)/(1.8+100)*5=0.08V,近似0V,
当插上耳机时簧片接触点悬空,CHECK电压5v。R6/R4 R8/R9分别将右/左输入信号衰减1/2,防止输入失真(这块是自己分析的,欢迎拍砖)。
3、耳放部分
耳放采用的LM4811放大器,先看看它的内部工作原理
输入信号经C1隔离直流输入放大器反向输入端,采用方向放大模式,通过反馈电阻调整放大倍数,然后输出端接信号输出和接地电阻,输入输出接地电阻保证放大电路将输入信号等比例放大,
保证放大电路精度。UP/DN为PWM信号,用占空比调整放大比例,CLOCK为DIGITAL VOLUME CONTROL 提供信号源。放大器把来自耳机插孔的信号放大后再输出到TPA3110D2功率放大器做二次放大。
4、功率放大器部分
TPA3110D2是15W D类放大器,各个引脚具体作用请参见PDF,做简单概述:
PIN1当/MUTE为低电平时输出高阻态,反之允许输出,输出幅值与模拟电源匹配。
PIN2 FAULT用于检测短路或者直流输入故障,当PIN2和PIN1相连是表示遇到短路会自恢复。
PIN3/4分别是左声道的正/负输入。
P5/6分别确定最低/高有效位(LSB/MSB),用来控制增益大小,具体增益大小看下表。这里有点疑问,电路图写的是5/6脚分别接电阻接地,但是PCB画的是5/6脚串接了一个电阻,不知道为什么
PIN7/8 模拟电源输入引脚。
PIN9数字电源,接电容电阻对地隔离接地。
PIN10电源限制电压调节,可通过在GVDD和GND之间接电阻控制电压,具体看手册。
PIN11右声道信号负输入。
PIN12右声道正输入。
PIN14 是否使用双推挽(BTL)自行看。
PIN15/16右H桥电源输入。
。。。。剩下的不写了,手册里都有,自己看吧。
5、单片机&按键&红外
这个就不说了,玩过单片机的都知道。
6、保护电路
这算是个保护电路,说下主要功能,当VCC12高电平时,Q1截止,Q2截止,当单片机控制端MUTE为高电平时Q3导通,/MUTE高电平,TPA3110D2高阻,不工作。
反之MUTE为低电平,/MUTE为VDD5 5V电平。
当VCC12 为0时,正常Q1导通,Q2导通,/MUTE低电平,TPA3110D2工作,但是这样瞬间开关机会有噪声,所以有C28电容放电,使Q1瞬间截止使TPA3110D2瞬间高阻态,消除噪声。
等零件到了再正式开始下一步