Skip to content

MALossov/AD9834-Driver-STM32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AD9834驱动详情

使用

康威电子嫖过来的,写的比较规范了,基本上看函数名字能知道怎么用。

  1. 用的HAL库软件SPI,写的比较规范,转成HAL库硬件的SPI也方便的很。
  2. 软件SPI的针脚定义和控制针脚定义在 .h头文件中自行修改就行。

其他

但是其实功能发掘的还不算特别好,比如:初相设置直接置为0:AD9834_Write_16Bits(0XC000); 更多的直接看芯片的datasheet吧,一起放一个中文版的到仓库里了。

示范

使用这个库的启动代码如下:

HAL_Delay(1000); //等待电平恢复稳定
AD9834_Init();
AD9834_Select_Wave(Sine_Wave);//Sine_Wave Square_Wave Triangle_Wave
AD9834_Set_Freq(FREQ_0, 1000);
 //后续直接选波即可,这里使用的是频率寄存器0

进阶使用

  1. 使用AD9834时,一般情况下用于混频出波。按照以上配置即可。

  2. 如果需要出调制波。尽量选择20M以下的信号,超过20M之后,极容易出现问题。

  3. 在调制时,可以通过以下两种方式改变调制信号,当然首先需要设置好频率寄存器

    1. 使用控制位Sine_WaveSine_Wave_Reg1来切换两种正弦波实现FSK。

    2. 写入控制位:SelectByPin之后,使用相对应的引脚控制实现波形切换。

  4. 如果需要对DAC进行关断,而碰巧使用了康威的板子。

    1. 直接使用控制位写入:0x2040,之后使用控制位开启。

    2. 在其他情况下可以使用SLEEP引脚控制

  5. 确保熟悉芯片手册。

进行FSK/ASK进行调制的示例代码

注意:在输出20Mhz以上的波形时,Vpp下降的幅度趋势极快。

//---初始化---//
//首先进行初始化
HAL_Delay(1000);    //电平初始化
AD9834_Init();    //拉低相关引脚
//设置基本的波形
AD9834_Set_Freq(FREQ_0, 20000000);
AD9834_Set_Freq(FREQ_1, 23000000);
//开启通过外部引脚控制波形寄存器
AD9834_Select_Wave(SelectByPin);

//---循环体---//
//使用引脚切换两个频率寄存器,进行实现FSK2的实现
AD9834_FS_SET();    //使用频率寄存器1
AD9834_FS_CLR();    //使用频率寄存器0

//使用引脚切换DAC开关断状态,实现ASK
//因为使用康威的板子,无法关断DAC,直接使能RST引脚
AD9834_RST_SET();    //关断波形输出
AD9834_RST_CLR();    //开启波形输出
//在开关波形时,输出电平为结束波形输出时电平,可能需要滤直流

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages