差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
analog_circuit_learning_kit [2023/03/06 22:52]
gongyu [5. 实验]
analog_circuit_learning_kit [2023/10/20 11:36] (当前版本)
gongyu [6. 开机测试]
行 178: 行 178:
 #### 3.2 信号发生电路 #### 3.2 信号发生电路
 {{drawio>​hsdac_lpf_block.png}}<​WRAP centeralign>​DAC + LPF部分</​WRAP>​ {{drawio>​hsdac_lpf_block.png}}<​WRAP centeralign>​DAC + LPF部分</​WRAP>​
-{{ :​dds_analog.png |}} +{{ :​dds_analog.png |}}<WRAP centeralign>​DDS模拟部分</​WRAP>​ 
-{{ :​dds_sch.png |}}+{{ :​dds_sch.png |}}<WRAP centeralign>​DDS部分的电路原理图</​WRAP>​
  
-{{ ::​hsdac_46k_out.png |}} +##### 3.2.1 高速DAC + 差分电流转单端电压 
-{{ ::​hsdac_46k_freq.png |}} +电路中采用了3Peaks公司的10位精度、最高转换率达125Msps的高速DAC - [[http://file.3peakic.com.cn:8080/​product/​Datasheet_3PD5651E.pdf|3PD5651]],在本设计中我们同时支持WebIDE编译环境(FPGA的内部时钟只能到12MHz)、Lattice或Altera的官方编译工具(通过PLL内部逻辑能够工作到200MHz)以及ICE40 FPGA的Radiant,ICE40 FPGA最高只能运行在48MHz,因此我们DAC的转换率最大设定为48Msps、生成的模拟信号的带宽为5MHz,后续的滤波器电路也是按照5MHz来设计。
-{{ ::​hsdac_3m_out.png |}} +
-{{ ::hsdac_out.png |}} +
-{{ ::​lpf_b_3m_freq.png |}} +
-{{ ::​lpf_e_3m_freq.png |}} +
-{{ ::​lpf_e_3m.png |}} +
-{{ ::​lpf_b_3m.png |}} +
-{{ ::​lpf_b_750k.png |}} +
-{{ ::lpf_e_750k.png |}}+
  
 +关于3PD5651E:
 +  * 125MSPS转换率
 +  * 10-Bit分辨率
 +  * 线性度: 1/4 LSB DNL
 +  * 线性度: 1/2 LSB INL
 +  * 差分输出电流:​ 2mA到20mA
 +  * 到40MHz奈奎斯特输出的SFDR:​ 62 dBc
 +  * 快速建立时间:​ 35ns满量程设置到0.1%
 +  * 片内1.10V基准电压
 +  * 边沿触发锁存
 +  * 功耗: 175 mW @ 5 V to 45 mW @ 3 V
 +  * 休眠模式:​ 20 mW @ 5 V
 +  * 单+5V或+3V供电
 +  * 28脚TSSOP封装
 +
 +我们通过一个模拟开关SGM3719来切换为3PD5651E提供基准电流的外置电阻,分别为2K和8K,在这两种配置下,DAC的满量程输出为:
 +  * 2KΩ:1.1V/​2K * 32 = 17.6mA
 +  * 8KΩ: 1.1V/8K * 32 = 4.4mA
 +
 +这两种配置,满足3PD5651最大满量程为2mA到20mA之间的要求,不会带来系统失真。
 +
 +DAC后面接了一个差分电流转单端电压输出的电路,在使用两种不同电阻配置的情况下,对应的最大电压信号输出:
 +  * 2KΩ:1.1V/​2K * 32 * 30 * 2 * 2 = 2.112Vpp
 +  * 8KΩ: 1.1V/8K * 32 * 30 * 2 * 2 = 0.528Vpp
 +
 +电路仿真结果:​
 +{{ :​dac_amp_simu_wave.png |}}<WRAP centeralign>​高速DAC输出电压的波形仿真</​WRAP>​
 +{{ :​dac_amp_simu_freq.png |}}<WRAP centeralign>​高速DAC输出电压的频谱响应</​WRAP>​
 +
 +我们看一下使用12Msps转换率生成的正弦波的波形:
 +{{ ::​hsdac_3m_out.png |}}<WRAP centeralign>​高速DAC输出3MHz正弦波信号的波形,12Msps转换率</​WRAP>​
 +{{ ::​hsdac_out.png |}}<WRAP centeralign>​高速DAC输出750KHz正弦波信号的波形,12Msps转换率</​WRAP>​
 +{{ ::​hsdac_46k_out.png |}}<WRAP centeralign>​高速DAC输出46.875KHz正弦波信号的波形,12Msps转换率</​WRAP>​
 +{{ ::​hsdac_46k_freq.png |}}<WRAP centeralign>​高速DAC输出46.875KHz正弦波时的频谱</​WRAP>​
 +
 +##### 3.2.2 5阶低通滤波器
 +{{ :​bwfilter.png |5阶巴特沃斯滤波器响应}}<​WRAP centeralign>​5阶巴特沃斯滤波器的频率响应</​WRAP>​
 +{{ :​ellipticfilter.png |5阶椭圆滤波器响应}} <WRAP centeralign>​5阶椭圆滤波器的频率相应</​WRAP>​
 +{{ ::​lpf_b_3m_freq.png |}}<WRAP centeralign>​3MHz的信号通过5阶巴特沃斯滤波器后的频谱</​WRAP>​
 +{{ ::​lpf_e_3m_freq.png |}}<WRAP centeralign>​3MHz的信号通过5阶椭圆滤波器后的频谱</​WRAP>​
 +{{ ::​lpf_b_3m.png |}}<WRAP centeralign>​3MHz的信号通过5阶巴特沃斯滤波器后波形</​WRAP>​
 +{{ ::​lpf_e_3m.png |}}<WRAP centeralign>​3MHz的信号通过5阶椭圆滤波器后波形</​WRAP>​
 +{{ ::​lpf_b_750k.png |}}<WRAP centeralign>​750KHz的信号通过5阶巴特沃斯滤波器后波形</​WRAP>​
 +{{ ::​lpf_e_750k.png |}}<WRAP centeralign>​750KHz的信号通过5阶椭圆滤波器后波形</​WRAP>​
  
 #### 3.3 信号采集电路 #### 3.3 信号采集电路
行 236: 行 272:
 {{ :​pwm_awg_freq.png |}}<WRAP centeralign>​用LTSpice仿真的频域效果</​WRAP>​ {{ :​pwm_awg_freq.png |}}<WRAP centeralign>​用LTSpice仿真的频域效果</​WRAP>​
  
 +**实际测试:​**
 +12MHz输入时钟,经过PLL后得到396MHz的内部时钟,用于PWM信号的生成。
 +AWG信号的幅度采用10位精度,因此DDS的转换时钟为396MHz/​1024 ~ 386.71875Ksps
 +要得到20KHz的模拟信号,24位的相位累加字为24'​H0D3D56
 +
 +{{ ::​pwm_awg_20khz_wave.png |}}<WRAP centeralign>​396MHz主频生成20KHz的模拟信号波形</​WRAP>​
 +{{ ::​pwm_awg_20khz_spec.png |}}<WRAP centeralign>​396MHz主频生成20KHz的模拟信号频谱</​WRAP>​
 +
 +在频谱上可以看到在386.71875KHz左右各有一个20KHz的镜像频率366.71875KHz和406.71875KHz的频率分量,这是因为我们低通滤波器在366KHz ~ 406MHz的抑制度比较低,如果采用更高阶的低通滤波器,可以将这部分的频率分量压制下来。
 +{{ ::​pwm_awg_20khz_sim.png |}}<WRAP centeralign>​使用simDDS查看生成信号的频谱 - 没有加低通滤波器</​WRAP>​
 +{{ ::​pwm_awg_20khz_lpf.png |}}<WRAP centeralign>​使用simDDS查看添加了2阶低通滤波器后的频谱</​WRAP>​
 +{{ ::​pwm_awg_20khz_lpf1.png |}}<WRAP centeralign>​使用simDDS查看添加了2阶低通滤波器后的杂散信号表</​WRAP>​
 +{{ ::​pwm_awg_20khz_lpf2.png |}}<WRAP centeralign>​使用simDDS查看添加了5阶低通滤波器后的频谱</​WRAP>​
  
 #### 3.5 可调直流电压生成 #### 3.5 可调直流电压生成
行 283: 行 332:
  
 ### 5. 实验 ### 5. 实验
-  - DDS信号产生:通过小脚丫FPGA逻辑设计搭配板上10位精度、最高120Msps的高速DAC(使用WebIDE,转换速率为12Msps),可以生成最高频率达5MHz的任意波形,可以通过ADALM2000的示波器功能来查看生成波形的时域信号及频谱构成;通过ADALM2000的数字IO观察送往DAC的数据总线上的数据以及DAC的时钟信号,以及这些数据和时钟之间的时序关系。涉及到的知识点:+  - [[dds_verilog|DDS信号产生]]:通过小脚丫[[FPGA]]逻辑设计搭配板上10位精度、最高120Msps的高速[[DAC]](使用[[WebIDE]],转换速率为12Msps),可以生成最高频率达5MHz的任意波形,可以通过ADALM2000的示波器功能来查看生成波形的时域信号及频谱构成;通过ADALM2000的数字IO观察送往[[DAC]]的数据总线上的数据以及DAC的时钟信号,以及这些数据和时钟之间的时序关系。涉及到的知识点:
     - DAC的工作原理及使用     - DAC的工作原理及使用
     - 使用运放做差分转单端信号     - 使用运放做差分转单端信号
行 298: 行 347:
     - 宽带放大器的增益设置     - 宽带放大器的增益设置
     - 带宽和压摆率的关系。     - 带宽和压摆率的关系。
-  - 通过PWM产生任意波形,可以利用PWM的可调占空比用作DAC,产生波形可调、频率可调的任意信号,包括可调的直流电压,并通过RC低通滤波器和放大器得到频率较低的任意波形,并同高速DAC产生的任意波形进行比较。可以使用ADALM2000的示波器功能查看生成的信号波形,使用ADALM2000的频谱分析功能来查看生成的信号波形的频谱构成,通过ADALM2000的数字IO或示波器功能来查看PWM的数字波形。 ​+  - 通过[[pwm_verilog|PWM产生任意波形]],可以利用[[PWM]]的可调占空比用作[[DAC]],产生波形可调、频率可调的任意信号,包括可调的直流电压,并通过RC低通滤波器和放大器得到频率较低的任意波形,并同高速[[DAC]]产生的任意波形进行比较。可以使用[[ADALM2000]]的示波器功能查看生成的信号波形,使用ADALM2000的频谱分析功能来查看生成的信号波形的频谱构成,通过ADALM2000的数字IO或示波器功能来查看PWM的数字波形。 ​
   - 基准电压的产生和利用   - 基准电压的产生和利用
-  - 串行DAC的使用 - FPGA通过SPI总线设置DAC的输出电压+  - 串行DAC的使用 - [[FPGA]]通过[[SPI]]总线设置[[DAC]]的输出电压 
 +  - 采用比较器 + FPGA逻辑制作的Sigma Delta ADC 
 +  - 高速ADC数据采集 
 +  - 模拟信号的程控衰减、增益 
 +  - 升压型开关稳压器 
 +  - 降压型开关稳压器 
 +  - 线性稳压/​LDO稳压器 
 +  - 电荷泵/​负电压生成 
 + 
 +### 6. 开机测试 
 +使用Lattice XO2-4000HC FPGA小脚丫,下载测试程序:{{:​acdlk_test_impl1.rar|模拟信号训练学习平台FPGA代码}},解压后生成jed文件可以下载。 
 +连接方式见图片:{{ :​acdlk_test_setup.jpg |测试连接方式}} 
 + 
 +板上的跳线除以下的跳线不连接之外,其它都连接: 
 +  - 用于扩展测试的管脚信号: 
 +    - J4的Vb - 对外提供5V直流电压,跳线两端都连接J2安装的FPGA核心板的+5V供电电压,用于对外供电 
 +    - J4的X1 - 对外提供一个IO,跳线两端都连接J2安装的FPGA的IO39,用于对外提供数字接口信号 
 +    - J4的GND - 对外提供GND,跳线两端都已经接地 
 +    - J5的3.3V - 对外提供3.3V直流电压,跳线两端都已经连接在J2安装的FPGA核心板的3.3V上 
 +    - J5的X2 - 对外提供一个IO,跳线两端都连接J2安装的FPGA的IO2,用于对外提供数字接口信号 
 +    - J5的GND - 对外提供GND,跳线两端都已经接地 
 +  - 用于信号输入的管脚信号 
 +    - J7 - 用于模拟信号输入,左侧为用Sigma Delta测试的模拟信号电压,右侧为GND 
 + 
 +二选一跳线: 
 +  - JP3:连接左侧两个管脚,使得在J6上输出的信号来自高速DAC生成的模拟信号 
 +  -