久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
AD9833+STM32單片機驅動程序 電路原理圖 引腳圖PDF資料
[打印本頁]
作者:
像風一樣54
時間:
2023-8-2 14:11
標題:
AD9833+STM32單片機驅動程序 電路原理圖 引腳圖PDF資料
AD9833模塊電路原理圖如下:
51hei.png
(56.33 KB, 下載次數: 31)
下載附件
2023-8-2 14:41 上傳
AD9833引腳圖及pdf資料:
51hei.png
(135.85 KB, 下載次數: 33)
下載附件
2023-8-2 14:41 上傳
實驗操作:
1、使用排線連接驅動板與AD9833模塊,驅動板上排線方向唯一,驅動板以及DDS模塊上,板子背面雙排針,方形焊盤為雙排針1腳,對應連接即可
2、使用5V電源連接AD9833模塊,使用5V電源連接DDS驅動板,
3、AD9833模塊側面輸出高頻頭,使用SMA屏蔽線,連接示波器
3、編譯該代碼,使用jlink下載器下載代碼到驅動板
4、確保AD9833模塊已上電。按下驅動板復位鍵(或驅動板重新上電),調整示波器時間檔位到合適位置,即可觀察到輸出波形
5、如使用自己的STM32開發板,請按下方描述接線,如使用其他引腳請自行移植更改程序。
/*********************************************************************************************/
【*】 引腳分配
STM32控制板 模塊絲印 芯片引腳名 功能
PA3 -----> SYKC FSYNC 低電平有效控制輸入
PA4 <-----> CLK SCLK 串行時鐘輸入
PA5 -----> DATA SDATA 串行數據輸入
(3.3V,5V均可) -----> V+ 控制板3.3V或5V與AD9833模塊V+連接。
GND <----> GND 控制板與AD9833模塊需共地。
浮空 ------ 其他 所有未說明但模塊有留出管腳,未使用可直接浮空,功能請參考數據手冊
單片機源程序如下:
作者:康威電子,大家可以找他獲得模塊
/**********************************************************
功能:參考時鐘25MHz,stm32f103rct6控制AD9833點頻調相位輸出,正弦波范圍0-10M,
方波:0-500K,三角波:0-1M 。
接口:控制引腳接口請參照AD9833.h
時間:2023/06/08
版本:2.1
作者:康威電子
其他:本程序只供學習使用
AD9833 單片機
硬件連接: SYKC——PA3;
CLK ——PA4;
DATA——PA5;
V+——(3.3V,5V均可)
GND--GND(0V)
**********************************************************/
#include "stm32_config.h"
#include "stdio.h"
#include "AD9833.h"
int main(void)
{
MY_NVIC_PriorityGroup_Config(NVIC_PriorityGroup_2); //設置中斷分組
delay_init(72); //初始化延時函數
delay_ms(500);//延時一會兒,等待上電穩定,確保AD9833比控制板先上電。
//代碼移植建議
//1.修改頭文件AD9833.h中,自己控制板實際需要使用哪些控制引腳。如AD9833_FSYNC腳改成PA1控制,則定義"#define AD9833_FSYNC PAout(1)"
//2.修改C文件AD9833.c中,AD983_GPIO_Init函數,所有用到管腳的GPIO輸出功能初始化
//3.完成
AD9833_Init();//IO口及AD9833寄存器初始化
//頻率入口參數為float,可使信號的頻率更精確
AD9833_SetFrequencyQuick(1000.0,AD9833_OUT_SINUS);//寫輸出頻率1000.0Hz,輸出正弦波
// AD9833_SetFrequencyQuick(1000.0,AD9833_OUT_TRIANGLE);//寫輸出頻率1000.0Hz,輸出三角波
// AD9833_SetFrequencyQuick(1000.0,AD9833_OUT_MSB);//寫輸出頻率1000.0Hz,輸出方波
while(1)
{
AD9833_SetPhase(AD9833_REG_PHASE0,0); //設置0°相位,范圍:0-4095(0-360°)
delay_ms(2);
AD9833_SetPhase(AD9833_REG_PHASE0,2048);//設置180°相位,范圍:0-4095(0-360°)
delay_ms(2);
}
}
復制代碼
#include "AD9833.h"
#include "delay.h"
//時鐘速率為25 MHz時, 可以實現0.1 Hz的分辨率;而時鐘速率為1 MHz時,則可以實現0.004 Hz的分辨率。
//調整參考時鐘修改此處即可。
#define FCLK 25000000 //設置參考時鐘25MHz,板默認板載晶振頻率25Mhz。
#define RealFreDat 268435456.0/FCLK//總的公式為 Fout=(Fclk/2的28次方)*28位寄存器的值
/************************************************************
** 函數名稱 :void AD983_GPIO_Init(void)
** 函數功能 :初始化控制AD9833需要用到的IO口
** 入口參數 :無
** 出口參數 :無
** 函數說明 :無
**************************************************************/
void AD983_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure ;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA端口時鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;
GPIO_Init(GPIOA ,&GPIO_InitStructure) ;
}
/**********************************************************************************************
** 函數名稱 :unsigned char AD9833_SPI_Write(unsigned char* data,unsigned char bytesNumber)
** 函數功能 :使用模擬SPI向AD9833寫數據
** 入口參數 :* data:寫入數據緩沖區,第一個字節是寄存器地址;第二個字節開始要寫入的數據。
bytesNumber: 要寫入的字節數
** 出口參數 :無
** 函數說明 :無
************************************************************************************************/
unsigned char AD9833_SPI_Write(unsigned char* data,unsigned char bytesNumber)
{
unsigned char i,j;
unsigned char writeData[5] = {0,0, 0, 0, 0};
AD9833_SCLK=1;
AD9833_FSYNC=0 ;
for(i = 0;i < bytesNumber;i ++)
{
writeData[i] = data[i + 1];
}
for(i=0 ;i<bytesNumber ;i++)
{
for(j=0 ;j<8 ;j++)
{
if(writeData[i] & 0x80)
AD9833_SDATA=1;
else
AD9833_SDATA=0;
AD9833_SCLK=0;
writeData[i] <<= 1;
AD9833_SCLK=1;
}
}
AD9833_SDATA=1;
AD9833_FSYNC=1;
return i;
}
/************************************************************
** 函數名稱 :void AD9833_Init(void)
** 函數功能 :初始化控制AD9833需要用到的IO口及寄存器
** 入口參數 :無
** 出口參數 :無
** 函數說明 :無
**************************************************************/
void AD9833_Init(void)
{
AD983_GPIO_Init();
AD9833_SetRegisterValue(AD9833_REG_CMD | AD9833_RESET);
}
/*****************************************************************************************
** 函數名稱 :void AD9833_Reset(void)
** 函數功能 :設置AD9833的復位位
** 入口參數 :無
** 出口參數 :無
** 函數說明 :無
*******************************************************************************************/
void AD9833_Reset(void)
{
AD9833_SetRegisterValue(AD9833_REG_CMD | AD9833_RESET);
delay_ms(10);
}
/*****************************************************************************************
** 函數名稱 :void AD9833_ClearReset(void)
** 函數功能 :清除AD9833的復位位。
** 入口參數 :無
** 出口參數 :無
** 函數說明 :無
*******************************************************************************************/
void AD9833_ClearReset(void)
{
AD9833_SetRegisterValue(AD9833_REG_CMD);
}
/*****************************************************************************************
** 函數名稱 :void AD9833_SetRegisterValue(unsigned short regValue)
** 函數功能 :將值寫入寄存器
** 入口參數 :regValue:要寫入寄存器的值。
** 出口參數 :無
** 函數說明 :無
*******************************************************************************************/
void AD9833_SetRegisterValue(unsigned short regValue)
{
unsigned char data[5] = {0x03, 0x00, 0x00};
data[1] = (unsigned char)((regValue & 0xFF00) >> 8);
data[2] = (unsigned char)((regValue & 0x00FF) >> 0);
AD9833_SPI_Write(data,2);
}
/*****************************************************************************************
** 函數名稱 :void AD9833_SetFrequencyQuick(float fout,unsigned short type)
** 函數功能 :寫入頻率寄存器
** 入口參數 :val:要寫入的頻率值。
** type:波形類型;AD9833_OUT_SINUS正弦波、AD9833_OUT_TRIANGLE三角波、AD9833_OUT_MSB方波
** 出口參數 :無
** 函數說明 :時鐘速率為25 MHz時, 可以實現0.1 Hz的分辨率;而時鐘速率為1 MHz時,則可以實現0.004 Hz的分辨率。
*******************************************************************************************/
void AD9833_SetFrequencyQuick(float fout,unsigned short type)
{
AD9833_SetFrequency(AD9833_REG_FREQ0, fout,type);
}
/*****************************************************************************************
** 函數名稱 :void AD9833_SetFrequency(unsigned short reg, float fout,unsigned short type)
** 函數功能 :寫入頻率寄存器
** 入口參數 :reg:要寫入的頻率寄存器。
** val:要寫入的值。
** type:波形類型;AD9833_OUT_SINUS正弦波、AD9833_OUT_TRIANGLE三角波、AD9833_OUT_MSB方波
** 出口參數 :無
** 函數說明 :無
*******************************************************************************************/
void AD9833_SetFrequency(unsigned short reg, float fout,unsigned short type)
{
unsigned short freqHi = reg;
unsigned short freqLo = reg;
unsigned long val=RealFreDat*fout;
freqHi |= (val & 0xFFFC000) >> 14 ;
freqLo |= (val & 0x3FFF);
AD9833_SetRegisterValue(AD9833_B28|type);
AD9833_SetRegisterValue(freqLo);
AD9833_SetRegisterValue(freqHi);
}
/*****************************************************************************************
** 函數名稱 :void AD9833_SetPhase(unsigned short reg, unsigned short val)
** 函數功能 :寫入相位寄存器。
** 入口參數 :reg:要寫入的相位寄存器。
** val:要寫入的值。
** 出口參數 :無
** 函數說明 :無
*******************************************************************************************/
void AD9833_SetPhase(unsigned short reg, unsigned short val)
{
unsigned short phase = reg;
phase |= val;
AD9833_SetRegisterValue(phase);
}
/*****************************************************************************************
** 函數名稱 :void AD9833_Setup(unsigned short freq, unsigned short phase,unsigned short type)
** 函數功能 :寫入相位寄存器。
** 入口參數 :freq:使用的頻率寄存器。
phase:使用的相位寄存器。
type:要輸出的波形類型。
** 出口參數 :無
** 函數說明 :無
*******************************************************************************************/
void AD9833_Setup(unsigned short freq, unsigned short phase,unsigned short type)
{
unsigned short val = 0;
val = freq | phase | type;
AD9833_SetRegisterValue(val);
}
/*****************************************************************************************
** 函數名稱 :void AD9833_SetWave(unsigned short type)
** 函數功能 :設置要輸出的波形類型。
** 入口參數 :type:要輸出的波形類型。
** 出口參數 :無
** 函數說明 :無
*******************************************************************************************/
void AD9833_SetWave(unsigned short type)
{
AD9833_SetRegisterValue(type);
}
復制代碼
Keil代碼和pdf資料下載:
AD9833模塊驅動+PDF-V2.1.7z
(1.7 MB, 下載次數: 63)
2023-8-2 14:45 上傳
點擊文件名下載附件
驅動模塊
下載積分: 黑幣 -5
作者:
timeabcd
時間:
2023-8-12 15:25
好東西,我之前是用51程序改的,試試這個怎么樣!
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美日韩四区
|
久久精品99国产国产精
|
av男人天堂网
|
欧美视频免费看
|
国产成人精品一区二区三区视频
|
国产福利视频
|
一区二区日韩
|
欧美黄色精品
|
视频在线观看一区
|
av毛片在线播放
|
黄色高清网站
|
日韩天堂网
|
成人小视频在线观看
|
精品一区av
|
可以看的毛片
|
日韩精品在线看
|
成人在线视频播放
|
91午夜精品亚洲一区二区三区
|
日韩不卡一区二区
|
成人女同在线观看
|
一区二区三区不卡视频
|
成人在线网址
|
性色在线
|
欧美性色网
|
国产成年妇视频
|
欧美精品第一页
|
99视频+国产日韩欧美
|
av手机在线免费观看
|
91精品久久久久
|
亚洲视频在线看
|
国产h视频在线观看
|
精品少妇av
|
国产精品毛片一区二区在线看
|
久草福利在线
|
成人网av
|
在线观看日韩
|
水蜜桃一区二区
|
www国产精品
|
中文字幕在线一区二区三区
|
五月激情久久
|
国产一级18片视频
|