前言
最近在瑞萨官网申请到了一块RA5M6的开发板,准备拿它来复刻2017年的电赛题目
- 介绍AD9959模块的基本功能和应用场景(如信号生成、通信系统等)。
- 阐述文章的目标:帮助读者快速掌握AD9959的驱动开发方法。
准备工作
- 硬件需求:AD9959评估板、主控芯片(如瑞萨RA6M5)、连接线等。
- 软件需求:开发环境(Keil、RA Smart等)、AD9959数据手册。
- 基础知识:SPI通信协议、DDS(直接数字频率合成)原理。

注意是SPI串行通讯协议,所以你在配置的时候需要运用GPIO模拟SPI来驱动这个模块。
然后注意SPI时钟最大SCLK要小于25Mhz。
正式开发
硬件连接:说明AD9959与主控芯片的引脚连接(如SCLK、SDIO、CS等)。

在硬件连接时确保,杜邦线正常,基本配置引脚可以配置成我上述的样子,运用GPIO来模拟SPI
寄存器的基本配置,这个跟官方发的一致。
uint8_t FR1_DATA[3] = {0xD0,0x00,0x00};//VCO gain control[23]=1系统时钟高于255Mhz; PLL[22:18]=10100,20倍频,20*25M=500MHZ; Charge pump control = 75uA
uint8_t FR2_DATA[2] = {0x80,0x00};// 单方向扫描,即从起始值扫到结束值后,又从起始值扫到结束值,以此类推
double ACC_FRE_FACTOR = 8.59; //频率因子8.589934592=(2^32)/500000000 其中500M=25M*20(倍频数可编程)
uint8_t CFR_DATA[3] = {0x00,0x03,0x02};//default Value = 0x000302 //通道功能寄存器
然后官方的代码进行初始化即可。

然后在主函数里面写入幅度以及频率控制

即可成功驱动AD9959这个模块。
效果展示
- 模块和单片机的连线

- 示波器截图:展示实际输出波形及频率稳定性。

正常生成10khz的正弦波 - 性能分析:输出精度、切换速度等指标的实测结果。
基本符合题目的前级DDS要求
7735

被折叠的 条评论
为什么被折叠?



