用户工具

站点工具


icore4t_25

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
icore4t_25 [2020/09/25 15:28]
fmj [三、实验原理]
icore4t_25 [2022/04/01 10:46] (当前版本)
sean
行 2: 行 2:
 |技术支持电话|**0379-69926675-801**||| |技术支持电话|**0379-69926675-801**|||
 |技术支持邮件|Gingko@vip.163.com||| |技术支持邮件|Gingko@vip.163.com|||
-|技术论坛|http://​www.eeschool.org||| 
 ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^ ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^
 |  V1.0  |  2020-09-25 |  gingko ​ |  初次建立 ​ |  |  V1.0  |  2020-09-25 |  gingko ​ |  初次建立 ​ | 
行 82: 行 81:
 ==== 三、实验原理 ==== ==== 三、实验原理 ====
  
-**1、DAC简介**+=== 1、DAC简介 ​===
   * STM32H750的DAC模块(数字/​模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压Vref+(通ADC共用)以获得更精确的转换结果。   * STM32H750的DAC模块(数字/​模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压Vref+(通ADC共用)以获得更精确的转换结果。
   * STM32H750的DAC模块主要特性:   * STM32H750的DAC模块主要特性:
行 160: 行 159:
  
 === 4、DDS原理 === === 4、DDS原理 ===
- 
   * 4.1 什么是频率   * 4.1 什么是频率
     * 频率是指单位时间内某事件重复的次数。在电子学中,信号的频率是指单位时间内信号的周期数,单位是赫兹(Hertz,简称Hz)。很多年前有一个著名的德国物理学家海因里希 · 鲁道夫 · 赫兹,他首先证明了电磁波的存在,为了纪念他,频率的单位就用他的名字命名。频率是一个非常常用、也是一个非常重要的国际单位;日常生活中,我们收听的收音机、观看的电视机、交流市电、移动蜂窝电话等信号的传输过程,都利用了信号的频率特性。频率与信号的周期互为倒数关系,所以频率也可以表示为:     * 频率是指单位时间内某事件重复的次数。在电子学中,信号的频率是指单位时间内信号的周期数,单位是赫兹(Hertz,简称Hz)。很多年前有一个著名的德国物理学家海因里希 · 鲁道夫 · 赫兹,他首先证明了电磁波的存在,为了纪念他,频率的单位就用他的名字命名。频率是一个非常常用、也是一个非常重要的国际单位;日常生活中,我们收听的收音机、观看的电视机、交流市电、移动蜂窝电话等信号的传输过程,都利用了信号的频率特性。频率与信号的周期互为倒数关系,所以频率也可以表示为:
-{{ :​icore4t:​icore4t_arm_hal_25_7.png?​direct&​650 |}} +{{ :​icore4t:​icore4t_arm_hal_25_7.jpg?​direct&​650 |}}
   * 4.2 怎么得到任意频率的信号   * 4.2 怎么得到任意频率的信号
     * 既然信号的频率特性那么重要,我们怎么样才能得到自己想要的频率的信号呢?一般来说,我们通过下面三种方法得到想要的频率信号。     * 既然信号的频率特性那么重要,我们怎么样才能得到自己想要的频率的信号呢?一般来说,我们通过下面三种方法得到想要的频率信号。
行 172: 行 170:
     * 直接数字合成(Direct Digital Synthesizer, DDS)是1971年由J.Tierncy等人提出的,它通过基于相位累加的变换方式,对输入频率进行变换,来达到任意频率输出的目的。它具有输出频率稳定、分辨率高、切换速度快等优点,配合波形查找表及相关路,它能产生任意的波形,这也是它最大的优势。     * 直接数字合成(Direct Digital Synthesizer, DDS)是1971年由J.Tierncy等人提出的,它通过基于相位累加的变换方式,对输入频率进行变换,来达到任意频率输出的目的。它具有输出频率稳定、分辨率高、切换速度快等优点,配合波形查找表及相关路,它能产生任意的波形,这也是它最大的优势。
   * 4.4 DDS原理   * 4.4 DDS原理
-   * 一个典型的DDS系统包括相位累加器、幅度变换及DA转换电路。它基于同一个系统时钟驱动的。在某一个时钟时刻,相位累加器产生一个特定的相位角度,通过相位角度-幅度变换,查找到波形表中电压值,然后送给DAC,来重现这一时刻的模拟电压,这就完成了DDS工作的一个步进。通过不断的时钟驱动,我们就能得到连续的模拟波形。+    ​* 一个典型的DDS系统包括相位累加器、幅度变换及DA转换电路。它基于同一个系统时钟驱动的。在某一个时钟时刻,相位累加器产生一个特定的相位角度,通过相位角度-幅度变换,查找到波形表中电压值,然后送给DAC,来重现这一时刻的模拟电压,这就完成了DDS工作的一个步进。通过不断的时钟驱动,我们就能得到连续的模拟波形。
 {{ :​icore4t:​icore4t_arm_hal_25_8.png?​direct&​700 |}}  {{ :​icore4t:​icore4t_arm_hal_25_8.png?​direct&​700 |}} 
     * 4.4.1 相位累加器     * 4.4.1 相位累加器
       * 相位累加器(ACCUMULATOR)是DDS的核心,它由一个加法器和一个D触发器组成。相位累加器由多位组成,典型的应用中,一般取 16~48位。相位累加器工作过程中,时钟每动作一次,累加器便累加一次调谐字(TUNING WORD);所以相位累加器输出一个以时间为序列的数字字,它线性增长,直到达到最大值2n(假设该累加器为n位),如果大于最大值,则舍弃溢出的高位,仍然保留n位。       * 相位累加器(ACCUMULATOR)是DDS的核心,它由一个加法器和一个D触发器组成。相位累加器由多位组成,典型的应用中,一般取 16~48位。相位累加器工作过程中,时钟每动作一次,累加器便累加一次调谐字(TUNING WORD);所以相位累加器输出一个以时间为序列的数字字,它线性增长,直到达到最大值2n(假设该累加器为n位),如果大于最大值,则舍弃溢出的高位,仍然保留n位。
       * 为了形象的描述相位累加器的工作过程,我们可以把相位累加器看做一个圆周,如图三所示。其中,n表示相位累加器的位数,2n为相位累加器的模数,也就是圆周等分点数,每次的步进值为调谐字(TUNING WORD)。如果把相位累加器旋转一周作为一个周期的话,则最终频率输出可以用方程式(2)来描述。       * 为了形象的描述相位累加器的工作过程,我们可以把相位累加器看做一个圆周,如图三所示。其中,n表示相位累加器的位数,2n为相位累加器的模数,也就是圆周等分点数,每次的步进值为调谐字(TUNING WORD)。如果把相位累加器旋转一周作为一个周期的话,则最终频率输出可以用方程式(2)来描述。
-{{ :​icore4t:​icore4t_arm_hal_25_9.png?​direct&​700 |}}  +{{ :​icore4t:​icore4t_arm_hal_25_9.jpg?​direct&​600 |}}
       * 如果把调谐字(TUNING WORD)设置为最小值1,带入方程式(2)则可得到最小输出频率,也就是频率分辨率。通过公式(3)我们可以看出,相位累加器位数越高,则频率分辨率越高。在100MHz的采样时钟下,48位的相位累加器可以使得频率分辨率优于 1μHz。       * 如果把调谐字(TUNING WORD)设置为最小值1,带入方程式(2)则可得到最小输出频率,也就是频率分辨率。通过公式(3)我们可以看出,相位累加器位数越高,则频率分辨率越高。在100MHz的采样时钟下,48位的相位累加器可以使得频率分辨率优于 1μHz。
 {{ :​icore4t:​icore4t_arm_hal_25_10.png?​direct&​700 |}}  {{ :​icore4t:​icore4t_arm_hal_25_10.png?​direct&​700 |}} 
行 188: 行 185:
 {{ :​icore4t:​icore4t_arm_hal_25_12.png?​direct&​700 |}}  {{ :​icore4t:​icore4t_arm_hal_25_12.png?​direct&​700 |}} 
   * 本实验中iCore4T的参考电压为2.5V,我们使用DAC1通道一作为DA输出,通过频率字控制输出频率为1KHz的正弦波。原理图如下:   * 本实验中iCore4T的参考电压为2.5V,我们使用DAC1通道一作为DA输出,通过频率字控制输出频率为1KHz的正弦波。原理图如下:
-{{ :​icore4t:​icore4t_arm_hal_25_13.png?​direct&​700 |}}  +{{ :​icore4t:​icore4t_arm_hal_25_13.png?​direct&​500 |}}  
-{{ :​icore4t:​icore4t_arm_hal_25_14.png?​direct&​700 |}} +{{ :​icore4t:​icore4t_arm_hal_25_14.png?​direct&​500 |}} 
 ==== 四、实验程序 ==== ==== 四、实验程序 ====
 === 1、主函数 === === 1、主函数 ===
行 198: 行 195:
   SystemClock_Config();​   SystemClock_Config();​
  
-    ​i2c.initialize();​ +  ​i2c.initialize();​ 
-    axp152.initialize();​ +  axp152.initialize();​ 
-    axp152.set_dcdc1(3500);//​[ARM & FPGA BK1/2/6 &​OTHER] +  axp152.set_dcdc1(3500);//​[ARM & FPGA BK1/2/6 &​OTHER] 
-    axp152.set_dcdc2(1200);//​[FPGA INT & PLL D] +  axp152.set_dcdc2(1200);//​[FPGA INT & PLL D] 
-    axp152.set_aldo1(2500);//​[FPGA PLL A] +  axp152.set_aldo1(2500);//​[FPGA PLL A] 
-    axp152.set_dcdc4(3300);//​[POWER_OUTPUT]+  axp152.set_dcdc4(3300);//​[POWER_OUTPUT]
     ​     ​
-    ​axp152.set_dcdc3(3300);//​[FPGA BK4][Adjustable] +  ​axp152.set_dcdc3(3300);//​[FPGA BK4][Adjustable] 
-    axp152.set_aldo2(3300);//​[FPGA BK3][Adjustable] +  axp152.set_aldo2(3300);//​[FPGA BK3][Adjustable] 
-    axp152.set_dldo1(3300);//​[FPGA BK7][Adjustable] +  axp152.set_dldo1(3300);//​[FPGA BK7][Adjustable] 
-    axp152.set_dldo2(3300);//​[FPGA BK5][Adjustable]+  axp152.set_dldo2(3300);//​[FPGA BK5][Adjustable]
  
   MX_GPIO_Init();​   MX_GPIO_Init();​
行 290: 行 287:
   - 烧写程序到iCore4T上;   - 烧写程序到iCore4T上;
   - 也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。   - 也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。
-==== 实验现象 ====+==== 六、实验现象 ====
   * 用示波器测量iCore4T底板的DAC引脚可以看到2Vpp 1KHz的正弦波,如下图。   * 用示波器测量iCore4T底板的DAC引脚可以看到2Vpp 1KHz的正弦波,如下图。
-{{ :​icore4t:​icore4t_arm_hal_25_15.png?​direct&​700 |}} +{{ :​icore4t:​icore4t_arm_hal_25_15.jpg?​direct&​600 |}}
  
icore4t_25.1601018894.txt.gz · 最后更改: 2020/09/25 15:28 由 fmj