口袋仪器的3D效果图

口袋仪器的3D效果图

它的核心是一个基于Lattice的XO2、自带下载器的FPGA最小系统模块,做了一个简单的扩展板,主要支持以下的功能:

  1. 输入/输出:
    1. 单色的OLED显示,128*64分辨率,是一块非常流行、常用的显示屏幕,采用了SPI接口方式对其进行控制,掌握SPI控制时序的逻辑编写以及点阵显示屏的字符显示、图形化显示以及波形刷新等方面的技能;
    2. 4个功能按键,使用者可以根据自己的操作来自行定义 - 理解处理器对外界事件的响应、按键的消抖处理等;
  2. 与仪器相关的功能:
    1. 设置了2路可调电压输出 - 每一路都可以从-3V 到+3V进行电压调节,负载能力为20mA,用以日常的实验足够,可以给电路提供电压源,也可以为模拟电路提供直流偏置。总计6V的变化范围受限于供电电源的设计,如果要获得更大范围的电压调节,可以重新设计供电电压源,但工作原理是一样的。此功能的主要目的是让大家通过运算放大器的工作了解其具体的应用以及特性,PWM的工作原理及应用;
    2. DDS任意信号发生器输出 - 可以得到100KHz的任意波形输出,信号幅度设定为最大5Vpp,产生的信号的直流偏移可以在数字域来进行设置,此功能的主要目的是为了让大家了解DDS信号产生的原理、PWM用做DAC时的灵活性及局限性以及运算放大器的具体应用;
    3. 电压表的功能 - 可以通过比较器和FPGA的逻辑构建ADC的功能,采集到DC到1KHz/最高3.3V的信号,通过这个功能掌握ADC的工作原理、用最简单的器件实现对模拟信号的量化处理、通过逻辑实现数字滤波器等;
    4. 频率计 - 可以支持到200MHz的频率,这是一个很简单的逻辑功能,但配合外部的高速比较器、按键操作、OLED显示,构建一个非常实用的功能;

FPGA简易口袋仪器原理图

在这个平台上主要用到PWM来完成所有的功能,因为PWM + 由电阻、电容构成的低通滤波器(LPF)能够实现DAC的功能,也就是可以将变化的数字信息转换为变化的模拟信号:

  1. 在任意波形发生器中,可以通过PWM+LPF将DDS生成的任意波形信号(数字)转换为模拟信号,模拟波形的频率和幅度都可以通过数字的方式进行调节生成;
  2. 在实现可编程直流电压输出时,可以通过PWM的占空比 + LPF得到直流电压,其实直流电压本质上也是任意波形的一种;
  3. ADC的实现实质上是在某一时刻将输入的模拟信号跟某一个特定值的电压进行比较,通过其处的电压区间来确定该输入信号在该时刻的电压值,被用来做比较的电压可以由PWM来生成;
  4. 频率计/计数器中,外部输入的被测信号其幅度的变化范围比较宽,需要通过高速的比较器对其进行整形,生成0、1高低电平,而比较器的另一个输入端为可变的直流电压,以适应不同幅度和直流偏移的输入信号,该可变的直流电压就可以通过PWM来产生

PWM的产生请参见文章:PWM的应用及相应的Verilog代码,由该文章得知,通过Sigma Delta的方式产生的PWM具有较好的频率特性,比较容易通过简单的低通滤波器滤除掉高频的脉冲信号,尤其是占空比约接近50%,输出信号其直流分量将约远离PWM的高频脉冲。 因此在实际的使用中,我们一般避免将占空比用到0%或100%,比如可以从10% - 90%之间变化,经过低通滤波器平滑输出后的直流在3.3*10% ~ 3.3 * 90% - 0.33V - 2.97V

通过PWM生成任意波形模拟信号

DDS+PWM产生任意波形

任意波形发生器模拟电路部分原理图

通过调节PWM的占空比(0.5V/3.3V ~ 3V/3.3V)得到等效幅度为0.5V - 3V之间的模拟信号,幅度变化的范围为2.5V,要得到幅度为5Vpp的模拟信号,则放大器的增益设定为G = 2: 也就是在电路原理图中放大器的增益为:R14/(R6+R7+R2) = 2 取R14 = 4.3KΩ,则R6+R7+R2 = 2.15KΩ PWM波形的中间值为(0.5V+3.0V)/2 = 1.75V,因此:

  1. 在PWM的输出为1.75V的时候,运算放大器的输出应为0V
  2. PWM的输出为0.5V的时候,运算放大器的输出为2.5V
  3. PWM的输出为3V的时候,运算放大器的输出为-2.5V

由此直流偏移的要求可以得到R10 + R13 = 6.5KΩ 同时R6、C6,R7、C7以及R14、C11共同构成低通滤波器。

能够生成模拟信号的最高频率 取决于PWM的主时钟频率,我们目前用的FPGA的输入时钟为12MHz,使用内部PLL以后可以得到12MHz倍数的时钟频率,最高可以到400MHz,我们取比较安全的中间值192MHz(12MHz * 16)作为PWM的主时钟。 假设DDS波表为10位精度(一般DDS信号发生器的精度,作为简易的口袋仪器,对性能指标要求不高,8位也能够满足要求),则对应于一个模拟电压值的PWM周期为192MHz/1024 = 155KHz 如果通过10个点

任意波形发生器模拟电路部分的仿真

产生可调电压

通过PWM产生可变直流电压的模拟电路原理图

通过高速比较器实现ADC的功能

Sigma Delta实现ADC的模拟电路原理图

通过高速比较器实现频率计的功能

板上电压的产生

如前面所述,模拟电路部分需要如下几组电压:

  • +3.3V/-3.3V,为运算放大器提供双轨的供电电压
  • +3.0V/+1.5V,为AWG的输出和DC的调节提供运算放大器的直流偏移