標題: STM32+AD9833,MCP4725和AD603模塊的頻率幅值可控的閉環(huán)放大電路 [打印本頁]

作者: ALIEN_M    時間: 2019-8-2 09:31
標題: STM32+AD9833,MCP4725和AD603模塊的頻率幅值可控的閉環(huán)放大電路
AD603模塊,AD9833  DDS信號發(fā)生器芯片(產(chǎn)生頻率可調(diào)信號),MCP4725   12位DAC芯片(控制AD603輸出最大值),STM32F103RCT6  正點原子mini板。代碼很簡單,調(diào)用直接復(fù)制HARDWARE文件下同名文件夾即可。
內(nèi)含芯片資料,模塊那個寶有。

制作出來的實物圖如下:


單片機源程序如下:
  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();                     //延時函數(shù)初始化          
  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. }
復(fù)制代碼

所有資料51hei提供下載:
自建基于AD603的可控信號放大.7z (3.48 MB, 下載次數(shù): 213)



作者: aaaaaa。    時間: 2019-8-4 10:28
請問一下這個怎么接線啊,沒看懂
作者: aaaaaa。    時間: 2019-8-4 15:19
votage是DC值呢,還是電壓(mv為單位)值,也就是如果votage是3724,那么用萬用表測的輸出電壓是多少
作者: ALIEN_M    時間: 2019-8-4 20:50
aaaaaa。 發(fā)表于 2019-8-4 15:19
votage是DC值呢,還是電壓(mv為單位)值,也就是如果votage是3724,那么用萬用表測的輸出電壓是多少

votage不是輸出電壓,vout才是DC的值,示波器上顯示的最大值就是vout,萬用表測出來的跟示波器最大值一樣。

作者: ALIEN_M    時間: 2019-8-4 20:52
aaaaaa。 發(fā)表于 2019-8-4 10:28
請問一下這個怎么接線啊,沒看懂

接線的話,是2部分引腳分別驅(qū)動2個芯片,ADC603模塊是外部供電,把DAC芯片輸出腳接到模塊電壓自動控制端就可以了
作者: ALIEN_M    時間: 2019-8-4 20:56
aaaaaa。 發(fā)表于 2019-8-4 15:19
votage是DC值呢,還是電壓(mv為單位)值,也就是如果votage是3724,那么用萬用表測的輸出電壓是多少

vout有一個計算公式,根據(jù)芯片手冊公示逆推出來的,很簡單
作者: aaaaaa。    時間: 2019-10-23 12:38
謝謝樓主
作者: aaaaaa。    時間: 2019-10-23 16:41
樓主,是這樣嗎?那你的VDD是3.3V,還是5V

0.jpg (29.41 KB, 下載次數(shù): 161)

0.jpg

作者: bh4sqe    時間: 2020-4-26 05:13
謝謝樓主

作者: jiangyan111    時間: 2020-5-7 09:25
這個AD9833是模擬spi還是硬件spi?
作者: 發(fā)燒人生    時間: 2020-5-20 23:59
謝謝樓主
作者: kyqhdf0583    時間: 2020-5-21 15:01
這個可以調(diào)整幅度嗎
作者: mhse    時間: 2021-4-15 17:16
這個可以調(diào)整幅度嗎




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1