搜索
bottom↓
回复: 63

动手做个基于DDS的超声波电源

[复制链接]

出0入0汤圆

发表于 2010-12-25 11:02:41 | 显示全部楼层 |阅读模式
最近心血来潮,想学学单片机,上淘宝买了些零件,来这里论坛看看,搞电源的挺多,都没有超声波电源的贴子,那我就做这个电源玩玩吧,希望能拉起一些话题来....好了,上图:

般了个八仙桌,老古董了,也没什么好工具,都摆上了 (原文件名:aa.jpg)


stc89c52单片机和dds芯片装到这个电脑电源的铁壳里,防止干扰. (原文件名:dds.jpg)


用实验板焊了个sg3525和igbt驱动板,dds的信号通过高速光偶输入到sg3525同步端 (原文件名:drv.jpg)


这个电脑电源的外壳还真不错,后面是写程序用的com口,一条电源线和1条频率输出线,频率跟踪还没写程序,所以还有些控制线没接出来 (原文件名:dds2.jpg)


变压器用普通电线绕的,要是有纱包线就好了,不知道谁能给我一些,呵呵 (原文件名:bc.jpg)


谐振电感也是用普通电线在塑料水管上绕的 (原文件名:llll.jpg)


谐振电容没有合适的,只好用了48颗0.22uf的突波吸收电容在实验板上焊,3并联合12串联,约0.04uf (原文件名:cccc.jpg)


下面那个胜利的频率发生器被我改装成频率计了,用来测量频率,示波器显示的是谐振波形,蓝色是电压,黄色是电流,不知道为什么不是同相位,有待大家讨论 (原文件名:pppp.jpg)


sg3525输出窄脉冲的时候电压波形(蓝色)不是正弦波,不知道有没有办法让小功率的时候也能输出正弦波呢 (原文件名:bbb.jpg)


功率管是两个igbt组成的半桥 (原文件名:gl.jpg)


频率跟踪还真难搞,用lm339做的采样整形,cd4013做相位识别,因为谐振不是同相位,还加了个CD4538单稳态电路来移动相位,终于可以输出谐振,频率偏高输出1,频率偏低输出0,我程序不怎么会搞,这个信号还没有接到单片机 (原文件名:fff.jpg)


黄色的波形就是那个电脑电源的外壳做的dds经过lm339整形后的同步脉冲信号 (原文件名:xxxxxxx.jpg)

超声波谐振的时候电流最小,频率偏高或偏低电流都会增大,电压也会增大,想写个程序自动跟踪电流的最小值,输出适合的频率,这个程序怎么写呢.........

===================================================主程序=============================================================
#include <reg52.h>
#include <tm1638.h>
#include <stc_eeprom.h>

sfr WDT_CONTR  =0xe1; //看门狗寄存器地址

//#include <STRING.H>
//***********外部函数声明******************************************************
//extern void display(unsigned long n);//max7219显示函数
extern void ad9850_reset_serial();//振荡器初始化
extern void ad9850_wr_serial(unsigned char w0,double frequence);//频率设置


//***********全局变量********************************************************
unsigned long frequency=2000000; //输出频率,变量最大值99999999

//**********延时*******************************************************
void delayy(unsigned long i)
{
while(i-->0);
}

void updata()//更新显示器和频率合成器的数据并存入存储器
{

eeprom_write_4byte(0x2e00,frequency);
frequency=eeprom_read_4byte(0x2e00);

ad9850_wr_serial(0x00,frequency*2);//输出频率
tm1638_display(frequency);//显示频率

}
//**********主函数*********************************************************
void main()
{
unsigned char k;
//int i;
P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff;
//WDT_CONTR=0x34;        //启动看门狗

init_TM1638();//显示初始化
ad9850_reset_serial();//频率合成器初始化
frequency=eeprom_read_4byte(0x2e00);  //读取频率值
updata();


//******************无限循环***********************************************************************
while(1)
{
k=0;
k=Read_key();//读取按钮

//while (Read_key()==k);  // 这句话会引起干扰,待查证

switch(k)
  {
case 0:
       frequency=2000000;
       updata();
       Write_allLED(1);//输出指示灯状态
       break;
case 1:
       frequency=3500000;
       updata();
       Write_allLED(2);//输出指示灯状态
       break;
case 2:
       frequency-=10000;
       updata();
       Write_allLED(4);//输出指示灯状态
       break;
case 3:
       frequency+=10000;
       updata();
       Write_allLED(8);//输出指示灯状态
       break;
case 4:
       frequency-=100;
       updata();
       Write_allLED(16);//输出指示灯状态
       break;
case 5:
       frequency+=100;
       updata();
       Write_allLED(32);//输出指示灯状态
       break;
case 6:
       frequency-=10;
       updata();
       Write_allLED(64);//输出指示灯状态
       break;
case 7:
       frequency+=10;
       updata();
       Write_allLED(128);//输出指示灯状态
       break;


        }

delayy(1);
WDT_CONTR=0x34;        //喂狗
}
}





====================================================dds频率合成器程序=============================================================
#include <reg51.h>
//#include <stdio.h>
//#include <intrins.h>
sbit ad9850_w_clk    =P1^0;  //P2.2口接ad9850的w_clk脚/PIN7
sbit ad9850_fq_up    =P1^1;  //P2.1口接ad9850的fq_up脚/PIN8
sbit ad9850_rest     =P1^3;  //P2.0口接ad9850的rest脚/PIN12
sbit ad9850_bit_data =P1^2;  //P1.7口接ad9850的D7脚/PIN25

//***************************************************//
//              ad9850复位(串行模式)                 //
//---------------------------------------------------//
void ad9850_reset_serial()
{
ad9850_w_clk=0;
ad9850_fq_up=0;
//rest信号
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
//w_clk信号
ad9850_w_clk=0;
ad9850_w_clk=1;
ad9850_w_clk=0;
//fq_up信号
ad9850_fq_up=0;
ad9850_fq_up=1;
ad9850_fq_up=0;
}

//***************************************************//
//          向ad9850中写命令与数据(串行)             //
//---------------------------------------------------//
void ad9850_wr_serial(unsigned char w0,double frequence)
{
unsigned char i,w;
long int y;
double x;
//计算频率的HEX值
x=4294967295/125;//适合125M晶振
frequence=frequence/100000000;
frequence=frequence*x;
y=frequence;
//写w4数据
w=(y>>=0);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w3数据
w=(y>>8);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w2数据
w=(y>>16);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w1数据
w=(y>>24);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w0数据
w=w0;   
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//移入始能
ad9850_fq_up=1;
ad9850_fq_up=0;
}
//***************************************************//
//                   测试程序1000Hz                  //
//---------------------------------------------------//
/*
main()
{
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x00;
//---------------------------------------------------//
//---------------------------------------------------//
//串行写1000Hz程序
ad9850_reset_serial();
ad9850_wr_serial(0x00,2000000);
//---------------------------------------------------//
while(1)
{
}
}


*/


========================================================stc89c52内部eeprom存储器读写程序==============================================
//                         stc单片机EEPROM读写(二)

sfr isp_data=0xe2;
sfr isp_addrh=0xe3;
sfr isp_addrl=0xe4;
sfr isp_cmd=0xe5;
sfr isp_trig=0xe6;
sfr isp_contr=0xe7;


unsigned char eeprom_read(unsigned int addres);
void eeprom_write(unsigned int address,unsigned char wdata);
void eeprom_eares(unsigned int addres);//扇区擦除。

void eeprom_eares(unsigned int addres)//扇区擦除。
     {unsigned i;
      isp_addrl=addres;     //低位地址
      isp_addrh=addres>>8; //高位地址
      isp_contr=0x01;
      isp_contr=isp_contr|0x80; //设时间与充ISP操作。
      isp_cmd=0x03;         //扇区命命令
      isp_trig=0x46;        //触发
      isp_trig=0xb9;        //触发启动。
      for(i=0;i<3;i++);
      isp_addrl=0xff;
      isp_addrh=0xff;
      isp_contr=0x00;
      isp_cmd=0x00;
      isp_trig=0x00;
   

          }
void eeprom_write(unsigned int addres,unsigned char write_data)//写数据。
     {unsigned char i;
      isp_data=write_data;   //要写入的数据。
      isp_addrl=addres;     //低位地址
      isp_addrh=addres>>8; //高位地址
      isp_contr=0x01;
      isp_contr=isp_contr|0x80; //设时间与充ISP操作。
      isp_cmd=0x02;         //写命令
      isp_trig=0x46;        //触发
      isp_trig=0xb9;        //触发启动。
      for(i=0;i<3;i++);
      isp_addrl=0xff;
      isp_addrh=0xff;
      isp_contr=0x00;
      isp_cmd=0x00;
      isp_trig=0x00;

     
       }
unsigned char eeprom_read(unsigned int addres)
     {unsigned char i,z;
      isp_addrl=addres;     //低位地址
      isp_addrh=addres>>8; //高位地址
      isp_contr=0x01;
      isp_contr=isp_contr|0x80; //设时间与充ISP操作。
      isp_cmd=0x01;         //写命令
      isp_trig=0x46;        //触发
      isp_trig=0xb9;        //触发启动。
      for(i=0;i<3;i++);
      isp_addrl=0xff;
      isp_addrh=0xff;
      isp_contr=0x00;
      isp_cmd=0x00;
      isp_trig=0x00;
      z=isp_data;
      return(z);
     
     
     }

void eeprom_write_4byte(unsigned int sector,unsigned long write_data )
{
eeprom_eares(sector);  //清除扇区内所有数据

eeprom_write(sector,write_data & 255 );
eeprom_write(sector+1,(write_data >> 8) & 0xff);
eeprom_write(sector+2,(write_data >> 16) & 0xff);
eeprom_write(sector+3,(write_data >> 24) & 0xff);

}

unsigned long eeprom_read_4byte(unsigned int sector)
{
unsigned long r_data;
r_data=eeprom_read(sector);
r_data+=eeprom_read(sector+1)*256;
r_data+=eeprom_read(sector+2)*65536;
r_data+=eeprom_read(sector+3)*16777216;
return r_data;

}

========================================================操作面板和数码管驱动程序================================================
#define        DATA_COMMAND        0X40
#define        DISP_COMMAND        0x80
#define        ADDR_COMMAND        0XC0

//引脚定义
sbit        DIO=P2^3;
sbit        CLK=P2^4;
sbit        STB=P2^2;

unsigned char code tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x80};
void TM1638_Write(unsigned char        DATA)                        //写数据函数
{
        unsigned char i;
        for(i=0;i<8;i++)
        {
                CLK=0;
                if(DATA&0X01)
                        DIO=1;
                else
                        DIO=0;
                DATA>>=1;
                CLK=1;
        }
}
unsigned char TM1638_Read(void)                                        //读数据函数
{
        unsigned char i;
        unsigned char temp=0;
        DIO=1;        //设置为输入
        for(i=0;i<8;i++)
        {
                temp>>=1;
                CLK=0;
                if(DIO)
                        temp|=0x80;
                CLK=1;
        }
        return temp;
}
void Write_COM(unsigned char cmd)                //发送命令字
{
        STB=0;
        TM1638_Write(cmd);
        STB=1;
}
unsigned char Read_key(void)
{
        unsigned char c[4],i,key_value=0;
        STB=0;
        TM1638_Write(0x42);
        for(i=0;i<4;i++)
                c=TM1638_Read();
        STB=1;                                        //4个字节数据合成一个字节
        for(i=0;i<4;i++)
                key_value|=c<<i;
        for(i=0;i<8;i++)
                if((0x01<<i)==key_value)
                        break;
        return i;
}
void Write_DATA(unsigned char add,unsigned char DATA)                //指定地址写入数据
{
        Write_COM(0x44);
        STB=0;
        TM1638_Write(0xc0|add);
        TM1638_Write(DATA);
        STB=1;
}
/*void Write_oneLED(unsigned char num,unsigned char flag)        //单独控制一个LED函数,num为需要控制的led序号,flag为0时熄灭,不为0时点亮
{
        if(flag)
                Write_DATA(2*num+1,1);
        else
                Write_DATA(2*num+1,0);
}  */
void Write_allLED(unsigned char LED_flag)                                        //控制全部LED函数,LED_flag表示各个LED状态
{
        unsigned char i;
        for(i=0;i<8;i++)
                {
                        if(LED_flag&(1<<i))
                                Write_DATA(2*i+1,3);
                        else
                                Write_DATA(2*i+1,0);
                }
}
void init_TM1638(void)
{
        unsigned char i;
        Write_COM(0x8a);//亮度
        Write_COM(0x40);
        STB=0;
        TM1638_Write(0xc0);
        for(i=0;i<16;i++)
                TM1638_Write(0x00);
        STB=1;
}

//显示10进制8位数字
/***********************************************************************/
void tm1638_display(unsigned long n)
{
Write_DATA(7*2,tab[n%10]);
Write_DATA(6*2,tab[n%100/10]);
Write_DATA(5*2,tab[n%1000/100]|0x80);
Write_DATA(4*2,tab[n%10000/1000]);
Write_DATA(3*2,tab[n%100000/10000]);
Write_DATA(2*2,tab[n%1000000/100000]);
Write_DATA(1*2,tab[n%10000000/1000000]);
Write_DATA(0*2,tab[n%100000000/10000000]);
}

频率跟踪程序还要琢磨琢磨,,搞个AD转换,跟踪电流的最小值,盼有高手写个跟踪程序

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-12-25 11:07:16 | 显示全部楼层
楼主强人啊!

出0入0汤圆

发表于 2010-12-25 11:57:33 | 显示全部楼层
论坛又来了个强人,楼主,那你是学什么技术的啊?

出0入0汤圆

发表于 2010-12-25 12:56:54 | 显示全部楼层
不错,这几天正在看IGBT的资料!!
有电路图么?分享学习一下可以么?

出0入0汤圆

发表于 2010-12-25 13:49:49 | 显示全部楼层
有个想法:  频率采用不要用AD, 毕竟AD费时费力, 如果单纯测试频率, 不要求相位同步, 应该很简单, 用个 74HCxxx 门电路, 将波形转换为方波(只需正半周), 单片机计算方波频率, 再简单不过了。

出0入0汤圆

 楼主| 发表于 2010-12-25 15:01:48 | 显示全部楼层
回复【6楼】my2009
-----------------------------------------------------------------------

这个是必须要求相位同步的,单片机输出的频率高于超声波换能器的频率时,电流超前于电压,频率低的时候,电流滞后于电压.所以要球单片机能够跟踪这个频率,使得电压和电流同相位。这个谐振频率会随着器件温度的升高而降低,测试80分钟,频率由高降低漂移了100HZ左右.相位跟踪真头疼,还没想出办法来,打算用AD跟踪电流的最小值,但是程序还不会写啊!

出0入0汤圆

 楼主| 发表于 2010-12-25 15:17:15 | 显示全部楼层
回复【5楼】li0713
-----------------------------------------------------------------------

单管IGCBT很难驱动,特别是大功率的管子,驱动波形尽可能的陡峭,否则管子发热,功率做不大。电路走线也是个挑战,不合理干扰巨大的。我用IR2110集成驱动,但效果都不太满意,关断时间还是长了点,小功率时管子发热,反而最大功率时不热。估计是小功率的时候两管均处于关断状态,变压器漏感产生高频寄生振荡引起发热,谁能告诉我怎么解决????

出0入0汤圆

发表于 2010-12-25 18:03:29 | 显示全部楼层
你这个dds,是指激发超声波的脉冲是DDS吗

出0入0汤圆

发表于 2010-12-25 19:45:01 | 显示全部楼层
【8楼】 mobing80 莫兵
--------------------------------------------------
       单片机用AD 跟踪 几十K 的频率很吃力, 如果在波形过零点用IC转换为方波的上升沿, 单片机检测上升沿还是比较容易(上升沿引发中断即可)。程序先测出频率,并改写频率参数, 然后在上升沿中断程序内使得频率合成器的相位为零(不知道合成器是否有这样的操作功能)

出0入0汤圆

发表于 2010-12-25 21:01:31 | 显示全部楼层
建议你做两路DDS,1路用作振荡,1路作为锁项环,用AD630检测相位,再交直流转换ADC,要不就高速ADC采样FFT,在频域识别

出0入0汤圆

发表于 2010-12-25 21:17:01 | 显示全部楼层
ding

出0入0汤圆

发表于 2010-12-25 22:11:10 | 显示全部楼层
牛人。

出0入0汤圆

 楼主| 发表于 2010-12-25 22:49:23 | 显示全部楼层
回复【10楼】my2009
-----------------------------------------------------------------------

谢谢你的建议!
我的思路是首先扫描频率,把电流转换成电压值,然后用AD识别出最小电流对应的频率,dds频率合成器输出对应谐振状态的频率,这样就能得到很接近换能器的频率了,然后把电流和电压的过零点转换为方波,用D触发器CD4013,电流输入到D端,电压输入到CP端,若电流超前,则D触发器输出为1,电流滞后,输出为零,这个信号输入单片机,当电流超前就降低频率,电流滞后就提升频率。这样电流和电压就是同相位了。

出0入0汤圆

发表于 2010-12-25 23:49:13 | 显示全部楼层
make一下

出0入0汤圆

发表于 2010-12-26 00:46:58 | 显示全部楼层
疯狂的牛人

出0入4汤圆

发表于 2010-12-26 01:36:47 | 显示全部楼层
我就做过超声波电源,可能比楼主作得更大些,已经商业化了,最大功率3KW.

出0入4汤圆

发表于 2010-12-26 01:56:24 | 显示全部楼层

(原文件名:2008112716162_2.jpg)

出0入0汤圆

发表于 2010-12-26 03:34:20 | 显示全部楼层

出0入0汤圆

发表于 2010-12-26 04:15:44 | 显示全部楼层
楼主强人,动手能力了得

出0入0汤圆

 楼主| 发表于 2010-12-26 09:23:08 | 显示全部楼层
回复【17楼】liguangqang
我就做过超声波电源,可能比楼主作得更大些,已经商业化了,最大功率3kw.
-----------------------------------------------------------------------

小弟拙作让前辈们见笑了,不知前辈用什么方法跟踪频率的?

出0入0汤圆

发表于 2010-12-26 11:28:38 | 显示全部楼层
是否能用4046做同步调整?

出0入0汤圆

 楼主| 发表于 2010-12-26 13:10:39 | 显示全部楼层
回复【22楼】lljyes
是否能用4046做同步调整?
-----------------------------------------------------------------------


搞来试了一下,真的可以跟踪频率了耶!哈哈,不过频率是在最佳谐振点左右不停摆动,不稳定!4046第9脚频率控制的滤波电容很难选取,大了跟踪摆幅就大,小了不能锁定频率。 (原文件名:4046相位比较.jpg)


腐蚀好覆铜板后才发现电路错误多多,lm339的输出上拉电阻居然都忘了,只好在背面修改 (原文件名:4046相位比较背面.jpg)

22楼的建议不错,快马加鞭赶紧测试,339电压整形加上4046振荡确实能跟踪换能器的频率相位,但不稳定,频率一旦失锁就无法自动寻找谐振点了。如果用程序的话,失锁就进入频率搜索程序,可以重新找到谐振点。
特别感谢lljyes

出0入0汤圆

发表于 2010-12-26 14:46:52 | 显示全部楼层
强  A

出0入0汤圆

 楼主| 发表于 2010-12-31 09:04:53 | 显示全部楼层
变压器输出方波有尖峰,原来是变压器的问题,要怎样绕才好??有没有高手帮忙?

出0入0汤圆

发表于 2010-12-31 19:21:58 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-31 20:46:51 | 显示全部楼层
这个要顶!支持牛人

出0入0汤圆

发表于 2011-1-6 13:22:42 | 显示全部楼层

出0入0汤圆

发表于 2011-1-22 10:52:45 | 显示全部楼层
回复【14楼】mobing80 莫兵
-----------------------------------------------------------------------

咱们思路一样,样机已经投入生产。不是用DDS,而是用mega16接R-2R控制VCO。

出0入0汤圆

发表于 2011-1-22 10:53:44 | 显示全部楼层
关键是后面换能器的匹配比较困难。

出0入0汤圆

 楼主| 发表于 2011-1-23 00:34:57 | 显示全部楼层
回复【30楼】mastergo
关键是后面换能器的匹配比较困难。
-----------------------------------------------------------------------

单片机控DDS或者VCO都是可以的,区别不大,DDS的频率稳定度略高一些,换能器匹配可以采用等效电容法,空心电感的精度高,可以找到比较准确的谐振点,就是体积太大了,周围还必须保留空间。我觉得难点在于做变幅杆和工具头上,尺寸精度要求高还不好调试,材料也至关重要,两片陶瓷还行,4片陶瓷振幅大了故障率很高啊

出0入0汤圆

发表于 2011-1-23 10:16:11 | 显示全部楼层
信号发生不是关键,而是对负载(换能器)的了解。频率跟踪方法其实很简单,重点是取样的合理性,这就要你对负载特性有一定的了解

出0入0汤圆

发表于 2011-1-23 10:31:37 | 显示全部楼层
学习了 似乎很深奥的样子

出0入0汤圆

发表于 2011-1-23 10:34:41 | 显示全部楼层
就你示波器上的图问到:“电流与电压相位为什么不一致?”,其实说明你还是不清楚换能器本质,如这句话这样说可能更好理解:“换能器两端电压与流过换能器串联支路(或动态支路)电流相位一致”,没搞清取样的合理性,你跟踪还有意义吗?

出0入0汤圆

发表于 2011-1-23 10:40:48 | 显示全部楼层
回复【17楼】liguangqang
我就做过超声波电源,可能比楼主作得更大些,已经商业化了,最大功率3kw.
-----------------------------------------------------------------------

回复【18楼】liguangqang

(原文件名:2008112716162_2.jpg)
引用图片
-----------------------------------------------------------------------

兄弟,小声问下是你做的吗?

出0入0汤圆

发表于 2011-1-23 12:47:11 | 显示全部楼层
回复【34楼】jakehusonic
-----------------------------------------------------------------------

同意,对换能器负载的认识非常重要。

出0入0汤圆

 楼主| 发表于 2011-1-24 00:06:18 | 显示全部楼层
回复【34楼】jakehusonic
就你示波器上的图问到:“电流与电压相位为什么不一致?”,其实说明你还是不清楚换能器本质,如这句话这样说可能更好理解:“换能器两端电压与流过换能器串联支路(或动态支路)电流相位一致”,没搞清取样的合理性,你跟踪还有意义吗?
-----------------------------------------------------------------------

感谢jakehusonic 的指引,这句话让我茅塞顿开,(或动态支路)这个表达得非常好,感觉自己钻到了换能器里,实在感谢!


回复【34楼】jakehusonic
兄弟,小声问下是你做的吗?
-----------------------------------------------------------------------

不管是仿制或者局部修改,只要能把自主设计创新的东西拿来与大家分享就好,互相学习,共同进步,而不是单纯的吹嘘。

出0入0汤圆

发表于 2011-2-24 20:42:28 | 显示全部楼层
lz能不能给一下IGBT半桥这部分的电路

出0入0汤圆

发表于 2011-3-7 17:07:51 | 显示全部楼层
毕业设计做这个,,先mark下

出0入0汤圆

发表于 2011-11-23 22:26:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2014-1-2 21:42:38 | 显示全部楼层
楼主方便留个联系方式吗?有些问题想和楼主交流一下

出0入0汤圆

发表于 2014-1-2 21:49:23 | 显示全部楼层
liguangqang 发表于 2010-12-26 01:36
我就做过超声波电源,可能比楼主作得更大些,已经商业化了,最大功率3KW.

楼上做过基于DDS的吗?

出0入0汤圆

发表于 2014-1-2 21:50:46 | 显示全部楼层
本人是大学学生,在做类似的课题,楼主能留个联系方式交流一下吗?

出0入0汤圆

发表于 2014-1-2 21:52:03 | 显示全部楼层
zsw3979 发表于 2011-3-7 17:07
毕业设计做这个,,先mark下

哥们,毕设完成的怎么样?

出10入95汤圆

发表于 2014-1-26 15:19:38 | 显示全部楼层
xue110592 发表于 2010-12-25 21:01
建议你做两路DDS,1路用作振荡,1路作为锁项环,用AD630检测相位,再交直流转换ADC,要不就高速ADC采样FFT ...

在理,楼主牛人

出10入95汤圆

发表于 2014-1-26 15:25:22 | 显示全部楼层
mobing80 发表于 2010-12-26 13:10
回复【22楼】lljyes
是否能用4046做同步调整?
------------------------------------------------------- ...

是否可以看看CD4046做的原理图?

出0入0汤圆

发表于 2014-2-3 19:47:39 | 显示全部楼层
强人******

出0入0汤圆

发表于 2015-1-6 22:50:41 | 显示全部楼层
楼主做的功率多大呢        

出0入0汤圆

发表于 2016-6-28 16:31:17 | 显示全部楼层
请问楼主:图片中的谐振电感,最大及最小感值可以做到多少?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-6-29 17:23:57 | 显示全部楼层
收藏了。楼主不错

出0入300汤圆

发表于 2016-7-6 05:42:39 | 显示全部楼层
很久以前我也做过类似的东西,也用的是9850.后来发现由于负载的效应经常不稳定,所以最后还是用了fpga和外部dac自己做的dds才解决问题。
ad9850很不稳定,没事的时候当然相安无事了,一旦多路同步需要有严格的相位关系都最好用fpga自己做dds,不然可能导致灾难性的后果。
dds很好做的,就是加完了切断再去查表,我当时那个rom怎么也配置不好,后来干脆就用了个外部的flash,dac我记得好像是用的ad768
用成品dds芯片输出一定要隔离,最好是线性光耦隔离

出0入0汤圆

发表于 2016-7-18 15:51:09 | 显示全部楼层
ibmx311 发表于 2016-7-6 05:42
很久以前我也做过类似的东西,也用的是9850.后来发现由于负载的效应经常不稳定,所以最后还是用了fpga和外 ...

请问下,你的超声波电源接的几个换能器?
我在一台自激的机器上多接了一个换能器后,焊接功率明显下降。正在寻找提高焊接功率的办法,请指导下。谢谢

出0入0汤圆

发表于 2016-7-19 19:52:58 | 显示全部楼层
ibmx311 发表于 2016-7-6 05:42
很久以前我也做过类似的东西,也用的是9850.后来发现由于负载的效应经常不稳定,所以最后还是用了fpga和外 ...

现在不少数字追频的超音波厂家都在用DDS做频率源,AD9850、AD9833都见过,有的机器做的还不错的,余姚那边的。我这段时间也在琢磨超声波电源,用的AD9833,功率输出1500W左右时频率还是很稳定的,没有对DDS产生干扰。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-8-6 23:21:31 | 显示全部楼层
楼主强人啊!

出0入0汤圆

发表于 2017-1-8 20:41:19 | 显示全部楼层
都是高手啊,下载来看下TM1638的控制
谢谢

出0入0汤圆

发表于 2017-2-28 17:12:18 | 显示全部楼层
学习。                       

出0入4汤圆

发表于 2020-3-12 19:54:19 | 显示全部楼层
最近也想做超声波数控电源

出10入95汤圆

发表于 2020-4-3 11:52:09 | 显示全部楼层
19711972f 发表于 2016-7-19 19:52
现在不少数字追频的超音波厂家都在用DDS做频率源,AD9850、AD9833都见过,有的机器做的还不错的,余姚那 ...

板子做的漂亮!
这段时间,公司赚翻了吧!

出0入8汤圆

发表于 2020-4-3 12:03:09 | 显示全部楼层
最近做超声波的都发财了

出0入0汤圆

发表于 2020-4-3 12:13:16 来自手机 | 显示全部楼层
技术储备在合适的时候就发财了

出0入0汤圆

发表于 2020-9-16 00:10:23 | 显示全部楼层
都是牛人啊!我最近也在弄个超声波电源。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 06:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表