找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6849|回复: 12
收起左侧

STM32+AD9833,MCP4725和AD603模块的频率幅值可控的闭环放大电路

  [复制链接]
ID:547218 发表于 2019-8-2 09:31 | 显示全部楼层 |阅读模式
AD603模块,AD9833  DDS信号发生器芯片(产生频率可调信号),MCP4725   12位DAC芯片(控制AD603输出最大值),STM32F103RCT6  正点原子mini板。代码很简单,调用直接复制HARDWARE文件下同名文件夹即可。
内含芯片资料,模块那个宝有。

制作出来的实物图如下:

实物连线

实物连线

波形

波形

频率幅值改变后波形

频率幅值改变后波形


单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "key.h"
  5. #include "ad9833.h"
  6. #include "MCP4725.h"

  7. int main(void)
  8. {       
  9.         u8 t=0;
  10.   static unsigned int freq,votage,vout;         
  11.         delay_init();                     //延时函数初始化          
  12.         AD9833_Init_GPIO();
  13.         MCP4725_Init();
  14.         LED_Init();                                   //初始化与LED连接的硬件接口
  15.         KEY_Init();                  //初始化与按键连接的硬件接口
  16.         LED0=0;                                        //点亮LED
  17.         while(1)
  18.         {
  19.                 t=KEY_Scan(0);     //得到键值
  20.                 switch(t)
  21.                 {                                 
  22.                         case KEY0_PRES:
  23.                                 LED0=!LED0;
  24.                                 freq+=10000;
  25.                                 break;
  26.                         case KEY1_PRES:
  27.                                 LED1=!LED1;
  28.                           vout+=1;
  29.                                 votage=(vout*4096)/5;
  30.                                 break;
  31.                         case WKUP_PRES:                               
  32.                                 LED0=!LED0;
  33.                                 LED1=!LED1;
  34.                                 freq=0;
  35.                                 votage=0;
  36.                                 vout=0;
  37.                                 break;
  38.                         default:
  39.                                 delay_ms(10);       
  40.                  }
  41.                
  42.                
  43.                 AD9833_WaveSeting(freq,0,SIN_WAVE,0 );//100KHz,        频率寄存器0,正弦波输出 ,初相位0 */
  44.           //AD9833_WaveSeting(1000.5,0,TRI_WAVE,0 );//1.0005KHz,频率寄存器0,三角波输出 ,初相位0
  45.           //AD9833_WaveSeting(1000000,0,SQU_WAVE,90);        //1MHz,                频率寄存器0,方波输出         ,初相位90 */
  46.           //AD9833_WaveSeting(100000,0,SIN_WAVE,0 );//100KHz,        频率寄存器0,正弦波输出 ,初相位0 */
  47.                
  48.                
  49.                 MCP4725_WriteData_Digital(votage);
  50.                
  51.                
  52.                
  53.                                
  54.                
  55.         }                 
  56. }
复制代码

所有资料51hei提供下载:
自建基于AD603的可控信号放大.7z (3.48 MB, 下载次数: 201)

评分

参与人数 2黑币 +80 收起 理由
songhetai + 30 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:511461 发表于 2019-8-4 10:28 | 显示全部楼层
请问一下这个怎么接线啊,没看懂
回复

使用道具 举报

ID:511461 发表于 2019-8-4 15:19 | 显示全部楼层
votage是DC值呢,还是电压(mv为单位)值,也就是如果votage是3724,那么用万用表测的输出电压是多少
回复

使用道具 举报

ID:547218 发表于 2019-8-4 20:50 | 显示全部楼层
aaaaaa。 发表于 2019-8-4 15:19
votage是DC值呢,还是电压(mv为单位)值,也就是如果votage是3724,那么用万用表测的输出电压是多少

votage不是输出电压,vout才是DC的值,示波器上显示的最大值就是vout,万用表测出来的跟示波器最大值一样。
回复

使用道具 举报

ID:547218 发表于 2019-8-4 20:52 | 显示全部楼层
aaaaaa。 发表于 2019-8-4 10:28
请问一下这个怎么接线啊,没看懂

接线的话,是2部分引脚分别驱动2个芯片,ADC603模块是外部供电,把DAC芯片输出脚接到模块电压自动控制端就可以了
回复

使用道具 举报

ID:547218 发表于 2019-8-4 20:56 | 显示全部楼层
aaaaaa。 发表于 2019-8-4 15:19
votage是DC值呢,还是电压(mv为单位)值,也就是如果votage是3724,那么用万用表测的输出电压是多少

vout有一个计算公式,根据芯片手册公示逆推出来的,很简单
回复

使用道具 举报

ID:511461 发表于 2019-10-23 12:38 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:511461 发表于 2019-10-23 16:41 | 显示全部楼层
楼主,是这样吗?那你的VDD是3.3V,还是5V
0.jpg
回复

使用道具 举报

ID:600282 发表于 2020-4-26 05:13 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:739441 发表于 2020-5-7 09:25 | 显示全部楼层
这个AD9833是模拟spi还是硬件spi啊?
回复

使用道具 举报

ID:114519 发表于 2020-5-20 23:59 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:402986 发表于 2020-5-21 15:01 | 显示全部楼层
这个可以调整幅度吗
回复

使用道具 举报

ID:75487 发表于 2021-4-15 17:16 | 显示全部楼层
这个可以调整幅度吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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