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.1654833678.txt.gz · 最后更改: 2022/06/10 12:01 由 sean