一、Board 系统D/A转换器需求
数字到模拟转换器(Digital to Analog Converter,DAC),或者叫D/A 转换器,是常用的电子元器件,常用于模拟信号调理、传感器校准、波形输出、自动控制中间环节等。这一篇,我们就从实际应用出发,以iBoard 为对象,来学习DAC扩展技术。
iBoard 包含数字存储示波器和任意波形发生器,DAC主要应用于这两个部分。系统需求如下:
- 任意波发生器幅度控制;
- 任意波发生器直流偏移量控制;
- 示波器程控增益放大控制(需要两路);
- 示波器直流偏移量控制;
- 示波器触发电平调节;
- 一路外扩DAC输出。
综上所述,系统总共需要7路低速DAC。市面上,多通道、高分辨率DAC价格不菲,而且iBoard 主控处理器 STM32F103VC 包含两路 12Bit DAC输出,所以我们利用STM32F103VC 内置的DAC,通过单通道到多通道的扩展技术,来满足系统需求。
二、一阶RC电路的瞬态响应
为了更好地理解本篇所描述的DAC扩展技术,我们需要了解一下一阶RC电路的零状态和零输入相应。也可以理解为RC电路的充电、放电过程。学习本节的知识需要明白以下几个基本概念。
n 一阶RC电路:指能通过一阶微分方程描述的动态RC电路。通俗的讲,也就是此电路经过简化后,只含有一个电容(C)的RC 电路。
n 零状态响应:在动态电路中,如果储能元件(C或者L)的初始状态为零,仅靠输入引起的响应,称为零状态响应。
n 零输入相应:在动态电路中,如果电路的输入为零,仅靠储能元件存储的能量激发的响应,称为零输入响应。
n 时间常数:表征电路瞬态过程变化快慢的物理量,具有时间量纲。RC电路中,时间常数 τ=R×C,如果R单位为欧姆(Ω),C单位为法拉(F),则τ的单位为秒(s)。
1、一阶RC电路的零状态响应
图一为一阶RC电路零状态响应示意图,E为电压源,S为开关,R为电阻器,C为电容器。我们假设S闭合前电容器C中没存储电能,并定义S闭合瞬间为时间起点,即t=0。
图一 RC零状态响应示意图
E、R、C构成回路,根据基尔霍夫电压定律,我们可以列方程式(1):
由于初始状态电容器不包含能量,所以可以得到公式(2),把公式(2)带入公式(1)可得:
求解可以得到电容C上电压 可表示为:
根据公式(3)可以算出,当t等于时间常数的时候,电容电压为 的63.2%;当t等于三倍时间常数的时候,电容电压将达到 的95%;当t等于五倍时间常数的时候,电容电压将达到 的99.3%,一般认为此时电容充电完成。
2、一阶RC电路的零输入响应
图二为一阶RC电路零输入响应示意图,E为电压源,S为开关,R为电阻器,C为电容器。我们首先把开关S打到节点 1 处,等完全充电完毕后,我们把开关S打到节点2处,并定义闭合瞬间为时间起点,即t=0。
图二 RC零输入响应示意图
与一阶RC电路零输入响应推导过程类似,我们可以得到电容C上电压 可表示为公式(4):
根据公式(4)可以算出,当t等于时间常数的时候,电容电压为 的36.8%;当t等于三倍时间常数的时候,电容电压剩余为 的5%;当t等于五倍时间常数的时候,电容电压仅剩余0.7%,一般认为此时电容放电完成。
三、DAC扩展电路原理
图三为DAC 扩展电路硬件原理示意图,它包含三个部分:单路DAC输出、多路模拟复用器(也叫多路开关)及控制电路以及RC充放电电路。
DAC电路利用STM32F103VC 内置的 12bit DAC,这样即简化了设计,也节约了成本。但由于其输出能力有限,我们在输出端需要加电压跟随器,来增加驱动能力。多路复用器采用74HC4051,通过STM32F103VC通用I/O端口,控制开关闭合与断开。多路开关输出后,经过RC电路保持,并经过运放缓冲输出。由于我们采用J-FET结构的运算放大器,其同相端输入阻抗高达1012 Ω,所以其影响对RC电路微乎其微。
工作过程: STM32通过软件设置7个DAC寄存器,用于保存7路DAC的输出值;利用STM32的定时器,设定一定的溢出时间,定时器溢出后,我们首先把当前DAC寄存器的值写进内置DAC,然后通过GPIO 控制端选择多路复用器七个当中的一个端口,对RC电路进行充电,这样就完成了一个通道的电容充电。下一次定时器溢出后,同样的方法我们再写入下一个通道,逐个完成7个通道DAC输出。由于多路开关在“关”的状态下有微小的漏电流,所以我们必须周而复始的“刷”RC电路,才能保持DAC的输出值。这样,就完成了7个通道DAC扩展。
图三 DAC扩展示意图
_______________________________________
关于 《iBoard 电子学堂》……
《iBoard 电子学堂》是一个综合型的电子研发开发平台,适合在校学生、一线工程师及电子爱好者等。
交流方式:
官方论坛:www.oshcn.com
官方淘宝店铺:i-Board.taobao.com
QQ群:
《iBoard 电子学堂 群【A】》:204255896(500人,满)
《iBoard 电子学堂 群【B】》:165201798(500人超级群)
《iBoard 电子学堂 群【C】》:215053598(200人高级群)
《iBoard 电子学堂 群【D】》:215054675(200人高级群)
《iBoard 电子学堂 群【E】》: 215055211(200人高级群)
《iBoard 电子学堂 群【F】》: 78538605 (200人高级群)