这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 功放DIY焊接调试说明,加入源代码

共53条 1/6 1 2 3 4 5 6 ›| 跳转至

功放DIY焊接调试说明,加入源代码

高工
2015-02-10 17:26:30     打赏

1,焊接

因为是多数是贴片元件,对于刚拿到析子,很多人都是喜欢先把好焊的插件元件焊上,这样感觉焊起的会快,似乎只要再焊这几个小元件就完成了一样。这是一个不好的习惯,焊接顺序最好是先焊最不容易焊的,比如IC,再焊焊费时的,就是那些数量最多的贴片元件,最后焊那些插接件连接器之类,假如析子上有怕静电的元件,这些元件可以考虑放到最后再焊,比如一些mosfet,蓝色LED,砷化镓工艺的射频IC等,这些都是比较怕静电的,200V的静电都可以让这些元件失效半失效,人体可以感知的静电差不多在2500-3000V左右。这些元件都是在不知不觉中损坏的。此处略10000.......

言归正传,如果是新手,功放板最好先把两个两个IC焊接,LM4811脚比较密,先把PCB上的焊盘上锡,再把板子上的锡拖平整,把IC放正位置,小心方向别反了,一边用锡固定上,焊另外一边,并把锡慢慢拖干净,完了再拖固定脚位的那一边。

位号图

元件位号图 高清pdf下载  PCB位号图.zip

功放空板

开始焊接几个料

元件

TPA3110D2这个芯片是面是有散热焊盘的,一般这种焊盘一定要用热风枪才能搞定。不过这个板子,没有热风枪也不怕,这个散热焊盘下留一个大孔,还是先焊IC的两边的脚,然后反过来在板子的另一面再焊中间那个焊盘,因为这个焊盘散热的铜面积比较大,这个时候烙铁温度可以调得高一些。

焊完

还有四个电感,也可以先焊。两个电解电容调试时可以先不焊,不影响调试。

注意:这个板子的所有插件元件封装为了焊接时少偏移,元件孔尺寸都不太大,焊上去是很难再取下来了。

2,调试

焊好后,单片机没有程序是不会出声音的,Q3导通时TPA3110D2输出是静音的。可以编程让它单片机P1.4输出低,Q3不导通,TPA3110D2输出打开。最快的方法就是把Q3 be极短接。

静音

这个有一个写好的hex程序,参考代码看第4点。可以烧到单片机中,这个程序当插入耳机后,单片机就会打开TPA3110D2的输出。如果焊接没问题,接上喇叭,播放音频,就会有声音出来。

下载 TEST.zip

音频输入,是采用3.5耳机输入,另这一端最好也是用3.5耳机插头,可以用两个废耳机接在一起,这样可以做手机和电脑功放。如果是接机顶盒或DVD之类,可能就要用到3.5耳机和莲花插头转接线或转接头。

连花线   耳机线


关于输出喇叭的接法,是不可以用3.5耳机转莲花插头这样的转接线的,这是BTL输出的,喇叭线和电源是不共地的,两个喇叭要四根线,没有公共极,3.5耳机头是三线的,有一个公共的极子,通常是电源负极。所以两个喇叭输出口,只能老老实实的用两个电气上独立的莲花头接喇叭。

连花线双头

喇叭正确的接法应该是酱紫的

正确的   错误的


 

3,功放改进

待续。。

 

4,参考代码

 工程文档在最下面 
几个使用到的IO的宏   
   
 //指示灯
sbit LED = P1^5;

//红外
sbit IR_INT0 = P3^2;	

//调音按键
sbit KEY_SUB = P1^2;
sbit KEY_ADD = P1^3;
sbit KEY_MUTE = P1^1;

//检测音频线有没有接入
sbit CHECK = P1^0;

//功放静音
sbit MUTE = P1^4;


//MCU调音量
sbit CLOCK = P3^3;
sbit UPDOWN = P3^6;

还有几个全局变量,主要是存功放和按键状态的
unsigned char uup=0;	//有连续按键时用
unsigned char IRtimer;
unsigned char phonejack;	//有没有音频线状态
unsigned char MUTEstate = 0;	//MUTE状态

        //配置功放关开IO,P1.4=1时是关功放,=0时是开功放
	 P1M1&=~(1<<4);		//P1.4(MUTE)推挽
	P1M0|=(1<<4);
	MUTE = 1;

音量控制是这样操作的
//控制音量加	
void Volume_add(void)
{
	UINT8 iadd = 5;
	UPDOWN = 1;
	while(--iadd)
		Delay1ms();
	CLOCK = 0;
	iadd = 5;
	while(--iadd)
		Delay1ms();
	CLOCK = 1;
}


// 控制音量减
  void Volume_sub(void)
  {
  	UINT8 isub = 5;
	  UPDOWN = 0;
	  while(--isub)
		Delay1ms();
	  CLOCK = 0;
	  isub = 5;
	  while(--isub)
		Delay1ms();
	  CLOCK = 1;
  }


功放静音控制只要
MUTE = 1; //静音
MUTE = 0; //不静音(开功放)

关于检测有没有插入3.5的音频头请参考下面代码
	if(CHECK == 0)	//没有音频线插入
		{
				MUTE = 1;
				phonejack = 0;	//没有音频线
		}
	else	//有耳机
		{
			if(phonejack == 0)
				{
					flash_LED(20);
				}
			phonejack = 1;	

			if(MUTEstate == 1)
				{
					MUTE = 1;
				}
			else 
				{
					MUTE = 0;
				}
		}


关于按键,软件上一定要做延时处理
下面是给大家一个延时的方法,高手请略过;

void Scan_key(void)
{
	UINT16 loop;
	if(KEY_SUB == 0)
		{LED = 1;
			loop = 10;
			while((KEY_SUB == 0) && (loop >0))
				{--loop;Delay1ms();}
			if(KEY_SUB == 0)
				{
					Volume_sub();
					u_sstr("-1\n\r");
					flash_LED(20);;
					
					loop = 1500;
					while((KEY_SUB == 0) && (loop >0))
						{--loop;Delay1ms();}
					
				}
			while(KEY_SUB == 0)
				{
					Volume_sub();
					u_sstr("-1\n\r");
					flash_LED(20);;
					loop = 200;
					while((KEY_SUB == 0) && (loop >0))
						{--loop;Delay1ms();}
				}
					
		}

	if(KEY_ADD == 0)
		{LED = 1;
		loop = 10;
		while((KEY_ADD == 0) && (loop >0))
			{--loop;Delay1ms();}
		if(KEY_ADD == 0)
			{
				Volume_add();
				u_sstr("+1\n\r");
				flash_LED(20);
				
				loop = 1500;
				while((KEY_ADD == 0) && (loop >0))
					{--loop;Delay1ms();}
				
			}
		while(KEY_ADD == 0)
			{
				Volume_add();
				u_sstr("+1\n\r");
				flash_LED(20);
				loop = 200;
				while((KEY_ADD == 0) && (loop >0))
					{--loop;Delay1ms();}
			}

					
		}

		if(KEY_MUTE == 0)
		{	
			LED = 1;
			loop = 10;
			while((KEY_MUTE == 0) && (loop >0))
			{--loop;Delay1ms();}
			
				if(MUTEstate == 1)
				{
					MUTEstate = 0;
				//	MUTE = 0;
				//	u_sstr("MUTE\n\r");
				}
			else 
				{
					MUTEstate = 1;
				//	MUTE = 1;
				//	u_sstr("CLOSE MUTE\n\r");
				}
			flash_LED(20);

			while(KEY_MUTE==0)
				{
					loop = 10;
					while(loop >0)
					{--loop;Delay1ms();}
				}
			
		}

	if(CHECK == 0)	//没有耳机插入
		{
				MUTE = 1;
				phonejack = 0;	//没有耳机
		}
	else	//有耳机
		{
			if(phonejack == 0)
				{
					flash_LED(20);
				}
			phonejack = 1;	

			if(MUTEstate == 1)
				{
					MUTE = 1;
				}
			else 
				{
					MUTE = 0;
				}
		}


}


参考工程请参考请下载 STC_ClassD(anjian).zip 





关键词: 功放     diy     调试说明    

菜鸟
2015-02-12 09:30:02     打赏
2楼

刚到货,现在才看看这个原理图之类的


菜鸟
2015-02-12 09:30:02     打赏
3楼

刚到货,现在才看看这个原理图之类的


院士
2015-02-12 23:13:04     打赏
4楼

    数字跟模拟就是区别大,模拟电路焊装好了就有声音,特别是电子管的电路,数字的就要写入程序。学习了,谢谢。


菜鸟
2015-02-13 00:59:57     打赏
5楼

请问板子输入电压的范围是多少?是78M05的最大输入电压35V吗,还是TPA3110D2的8V到26V?

(家里没12V的电源


助工
2015-02-13 08:29:37     打赏
6楼
焊接。。。惨痛过的教训高高告诉我们:先保证电源部分没问题。。。。

工程师
2015-02-14 11:39:01     打赏
7楼
嘻嘻嘻  学习了  谢谢

工程师
2015-02-19 18:10:51     打赏
8楼

数字功放和模拟功放一样,装好了就可以正常工作,不需要所谓的程序。

这个DIY是耳放为前置音放、D类芯片为数字功放,按理说,安装好就可以工作了。不同的是一些音量、音色、声道、保护等等通常需要用各种开关、电位器等器件来实现,这里改用单片机了,当然就要写入程序才能工作了。


高工
2015-03-06 10:58:29     打赏
9楼
已加放参考源代码

菜鸟
2015-03-09 18:11:38     打赏
10楼
在等两天估计就能收到了 先看看资料 学习一下

共53条 1/6 1 2 3 4 5 6 ›| 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]