icore3l_arm-gd_12
银杏科技有限公司旗下技术文档发布平台 |
技术支持电话 | 0379-69926675-801 |
技术支持邮件 | Gingko@vip.163.com |
版本 | 日期 | 作者 | 修改内容 |
V1.0 | 2020-11-14 | gingko | 初次建立 |
实验十二:DDS实验——输出正弦波
一、实验目的与意义
了解GD32 DAC结构
了解GD32 DAC特征
掌握 DDS原理
掌握 GD32固件库中DAC属性的配置方法
掌握KEIL MDK集成开发环境使用方法
二、实验设备及平台
iCore3L 双核心板
JLINK(或相同功能)仿真器
Micro USB线缆
Keil MDK 开发平台
装有WIN XP(及更高版本)系统的计算机
三、实验原理
GD32 DAC简介
DAC主要特征
DAC输出电压公式
经过线性转换后,数字输入会转换为 0 到 VREF+ 之间的输出电压。
各 DAC 通道引脚的模拟输出电压通过以下公式确定:
DAC_output= V_REF × DOR/4096
DDS简介
相位累加器
相位累加器(ACCUMULATOR)是DDS的核心,它由一个加法器和一个D触发器组成。相位累加器由多位组成,典型的应用中,一般取16~48位。相位累加器工作过程中,时钟每动作一次,累加器便累加一次调谐字(TUNING WORD);所以相位累加器输出一个以时间为序列的数字字,它线性增长,直到达到最大值2𝑛 (假设该累加器为n位),如果大于最大值,则舍弃溢出的高位,仍然保留n位;
为了形象的描述相位累加器的工作过程,我们可以把相位累加器看做一个圆周,如图12-1所示。其中,n表示相位累加器的位数,2𝑛为相位累加器的模数,也就是圆周等分点数,每次的步进值为调谐字(TUNING WORD)。如果把相位累加器旋转一周作为一个周期的话,则最终频率输出可以用方程式fout=fsample/2n∙m(m:调谐字)来描述。
相位累加器的输出为线性的,如果我们需要输出任意的波形,我们则需要角度-幅度转换。一般地可以通过查找表的方法来实现。相位累加器的输出作为查找表的地址,数据线作为内容输出,则完成了角度-幅度转换;
相位累加器的输出经过波形查找表后,得到按预置波形变化的数字序列,还需要进行数字-模拟转换,才能得到我们需要的模拟波形,这个过程为 D/A转换。DAC 的驱动时钟与相位累加器的时钟同源,所以保证DDS 每个模块工作“步调”一致;
四、实验步骤
把仿真器与iCore3L的SWD调试口相连(直接相连或者通过转接器相连);
把iCore3L通过Micro USB线与计算机相连,为iCore3L供电;
打开Keil MDK 开发环境,并打开本实验工程;
烧写程序到iCore3L上;
也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。
五、实验现象
串口显示 SDIO初始化及文件读取情况,显示结果如图所示,示波器测量 DAC管脚口波形输出情况,测量情况如图所示。
icore3l_arm-gd_12.txt · 最后更改: 2022/06/10 14:17 由 sean