9.19AD和DA操作
下载芯片说明书的网站:http://www.21ic.com/
D/A digital是数字信号,analog是模拟信号,单片机属于数字芯片,内部只有0和1,这两种信息无法表示一个模拟量,如果是一个8位的D/A,全部送11111111为8V.全部送00000000为0V,等等
DA转换器与单片机的接口
T型电阻网络D/A转换器:

由图中可知,I=V/R,I7占的权重为二分之一,I6为四分之一,以此类推
D/A转换的主要性能指标,分辨率,线性度,绝对误差,相对误差,建立时间
分辨率:分辨率是指输入数字量的最低有效位变化时,所对应的输出模拟量(电压或电流)的变化量他反应了输出模拟量的最小变化值
分辨率与输入数字量的位数有明确的关系,可以用FS /2的n次方来表示,FS表示满量程输入值,n为二进制数,对于5V的满量程,采用8位的DAC时,分辨率为5/256 = 19.5mv,采用12位的DAC时,分辨率则为5/4096=1.22mv,显然,位数越多分辨率就越高
线性度:
线性度也称为是(非线性误差)是实际转换曲线与理想直线特性之间的最大偏差,常以相对满量程的百分数表示,如-1%到+1%之间,表示实际输出值与理论值之间在满刻度-1%到+1%以内
建立时间:电流型的DAC的建立时间短,电压输出型DAC的建立时间DAC主要决定运算放大器的响应时间,因为电压输出的是要经过运算放大器
注意,精度与分辨率具有一定的联系,但是概念不同,DAC的位数多时,分辨率会提高,但对于影响精度的量化误差会减小,但其他误差(如温度漂移,线性不良)的影响仍然会使DAC的精度变差
操作时序:
DAC0832芯片是非常常用的DAC转换器,
CS,片选信号,低电平有效
AD转换的原理参数指标:一般的AD转化过程是通过保持,量化,编码三个步骤完成的,即首先对模拟信号进行采样,采样结束后进入保持时间,在这段时间将电压量转化为数字量,并按照一定的编码方式给出转换结果
采样定理,采样的频率要大于2倍v1最高频率分量的频率
量化和编码:用数字量来表示采样电压时,必须把它换成这个最小数量单位的整数倍,这个转化的过程叫做量化
量化误差:量化误差是指不能被整除时带来的误差,为了减小量化时带来的误差,现在把每个二进制编码代表的模拟电压规定为他所对应的模拟电压范围的中点,所以这个时候最大的量化误差自然就缩小到(单位1)/2
AD小结:不同的AD转化方式具有各自的特点,在要求转化速度比较高的场合,选用并行AD转换器,在要求精度比较高的情况下,可采用双积分A/D转换器,当然也可以使用其他A/D转化器,但会增加成本;逐次比较型A/D转换器在一定的程度上兼有以上两种A/D转换器的优点,因此得到普遍的应用
这里我们不讲转化原理了,在这里我们讲应用,怎么样使得板子上的PCF8591与单片机之间进行通信

未完待续~~~
9.19AD和DA操作的更多相关文章
- Documentum常见问题11-xplore全文检索时找不到相关内容
最近帮助同事处理了一个关于全文检索的问题,随手记录下来供以后参考. 问题一 某些Cabinet下的文件可以全文检索到,但某些Cabinet下的数据全文检索不成功. 新建了一个Docbase-AADCT ...
- Enterprise Library深入解析与灵活应用(2): 通过SqlDependency实现Cache和Database的同步
对于一个真正的企业级的应用来说,Caching肯定是一个不得不考虑的因素,合理.有效地利用Caching对于增强应用的Performance(减少对基于Persistent storage的IO操作) ...
- 缓存方案 通过SqlDependency实现Cache和Database的同步
对于一个真正的企业级的应用来说,Caching肯定是一个不得不考虑的因素,合理.有效地利用Caching对于增强应用的Performance(减少对基于Persistent storage的IO操作) ...
- GNU汇编 伪指令
伪指令 本身并没有所对应的机器码 它只是在编译的时候起作用,或者转换为其他的实际指令来运行 global ascii byte word data equ align @ 下面的例子是在数据段存放数据 ...
- Python 【第六章】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
- C#操作access和SQL server数据库代码实例
在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...
- access基本操作(c#操作,远程连接,执行sql,加密,备份)
前言 最近项目用到了access,是的就是access,工作在桌面型的小数据库应用还是会用到的,如果你确定永远不会遇到access的操作,请忽略此篇文章 1.vs配置access 既然是数据库,就少不 ...
- LightMysql:为方便操作MySQL而封装的Python类
原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...
- python对缓存(memcached,redis)的操作
1.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
随机推荐
- unity手游之聊天SDK集成与使用一
手游中都有聊天功能,比如公会,私聊,世界聊天,那么找一个好用,功能强大的SDK的可以节省很多精力,帮助我们提高开发速度与游戏质量. 写本篇博文是为了方便使用这个SDK做聊天模块的程序,避免许多坑,我在 ...
- 你所不知道的ref
在c#中有个关键字叫ref,它的作用是使参数按引用传递,基本用法如下: class RefExample { static void Method(ref int i) { i = ; } stati ...
- 1023: [SHOI2008]cactus仙人掌图 - BZOJ
Description如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人图(cactus).所谓简单回路就是指在图上不重复经过任何一个顶点的回路 ...
- 8 行 Node.js 代码实现代理服务器
接触 Node.js 已有多年,一直喜欢它的单线程模型和异步IO特性,以及 JavaScript 语言本身的灵活性.同时,JavaScript 前后端通吃,在全栈开发领域具有独特的优势.今天就来看看作 ...
- 阿里云,CentOS下yum安装mysql,jdk,tomcat
首先说明,服务器是阿里云的,centos6.3_64位安全加固版.首先需要登陆进来,使用的是putty,因为最初的时候,Xshell登陆会被拒绝. 0. 创建个人文件夹 # 使用 yum 安装tomc ...
- POJ 3252 Round Numbers(数位dp)
题意:给定区间[l,r],l < r ,求区间中满足条件的正整数的个数:二进制表示下0的个数不少于1的个数. 分析:f(x)表示<=x时满足条件的数的个数,所求问题即为f(r)-f(l-1 ...
- jquery中事件重复绑定以及解绑问题
一般的情况下,对于这种情况,我们常规的思路是,先解绑,再绑定,如下: $(selector).unbind('click').bind('click',function(){....}); 当这样会有 ...
- Android studio 下的 NDK 配置方法和注意事项
http://blog.csdn.net/u013598660/article/details/47341963
- red5研究(一):下载,工程建立、oflaDemo安装、demo测试
一.red5下载.添加工程到myeclipse 1,从官网上下载red51.01版本(我下载的是red51.0的版本),下载链接http://www.red5.org/downloads/red5/1 ...
- 常用JVM配置参数
常用JVM配置参数 Trace跟踪参数 堆的分配参数 栈的分配参数 Trace跟踪参数 1.打开GC的日志,如果在程序的运行过程中,系统发生了GC,就会打印相关的信息. -verbose:gc -XX ...