从康威电子嫖过来的,写的比较规范了,基本上看函数名字能知道怎么用。
- 用的HAL库软件SPI,写的比较规范,转成HAL库硬件的SPI也方便的很。
- 软件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
-
使用AD9834时,一般情况下用于混频出波。按照以上配置即可。
-
如果需要出调制波。尽量选择20M以下的信号,超过20M之后,极容易出现问题。
-
在调制时,可以通过以下两种方式改变调制信号,当然首先需要设置好频率寄存器:
-
使用控制位
Sine_Wave
和Sine_Wave_Reg1
来切换两种正弦波实现FSK。 -
写入控制位:
SelectByPin
之后,使用相对应的引脚控制实现波形切换。
-
-
如果需要对DAC进行关断,而碰巧使用了康威的板子。
-
直接使用控制位写入:
0x2040
,之后使用控制位开启。 -
在其他情况下可以使用
SLEEP
引脚控制
-
-
确保熟悉芯片手册。
注意:在输出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(); //开启波形输出
//在开关波形时,输出电平为结束波形输出时电平,可能需要滤直流