下载芯片说明书的网站: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操作的更多相关文章

  1. Documentum常见问题11-xplore全文检索时找不到相关内容

    最近帮助同事处理了一个关于全文检索的问题,随手记录下来供以后参考. 问题一 某些Cabinet下的文件可以全文检索到,但某些Cabinet下的数据全文检索不成功. 新建了一个Docbase-AADCT ...

  2. Enterprise Library深入解析与灵活应用(2): 通过SqlDependency实现Cache和Database的同步

    对于一个真正的企业级的应用来说,Caching肯定是一个不得不考虑的因素,合理.有效地利用Caching对于增强应用的Performance(减少对基于Persistent storage的IO操作) ...

  3. 缓存方案 通过SqlDependency实现Cache和Database的同步

    对于一个真正的企业级的应用来说,Caching肯定是一个不得不考虑的因素,合理.有效地利用Caching对于增强应用的Performance(减少对基于Persistent storage的IO操作) ...

  4. GNU汇编 伪指令

    伪指令 本身并没有所对应的机器码 它只是在编译的时候起作用,或者转换为其他的实际指令来运行 global ascii byte word data equ align @ 下面的例子是在数据段存放数据 ...

  5. Python 【第六章】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  6. C#操作access和SQL server数据库代码实例

    在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...

  7. access基本操作(c#操作,远程连接,执行sql,加密,备份)

    前言 最近项目用到了access,是的就是access,工作在桌面型的小数据库应用还是会用到的,如果你确定永远不会遇到access的操作,请忽略此篇文章 1.vs配置access 既然是数据库,就少不 ...

  8. LightMysql:为方便操作MySQL而封装的Python类

    原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...

  9. python对缓存(memcached,redis)的操作

    1.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...

随机推荐

  1. 在工程中添加pch文件

    在Xcode6之前,新建一个工程的时候,系统会帮我们自动新建一个以工程名为名字的pch (precompile header)文件,在开发过程中,可以将那些整个工程都广泛使用的头文件包含在该文件下,编 ...

  2. SwfUpload vs里运行可以上传文件,放到iis上上传就报404错误。

    网上的答案都是说swfupload 的upload_url 路径要设置成绝对路径,但是我也设置了,但是还是不行,然后又找了方法,终于找到了,点击这里查看 解决办法: <system.webSer ...

  3. Elasticsearch升级至1.x后API的变化-三

    请支持原创:http://www.cnblogs.com/donlianli/p/3841762.html   1.索引格式 1.x之前的版本,被索引的文档type会同时出现在url和传输的数据格式中 ...

  4. 团体程序设计天梯赛-练习集L1-012. 计算指数

    L1-012. 计算指数 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 真的没骗你,这道才是简单题 —— 对任意给定的不超过1 ...

  5. 可编辑的select框的实现(实用版)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML>  <HEA ...

  6. 获取属性名:PropertyNameHelper

    获取属性名:PropertyNameHelper namespace NCS.Infrastructure.Querying { public static class PropertyNameHel ...

  7. hdu 4101

    比赛的时候先是受以前一个圣神海的题目 用了两遍DFS 第一遍标记出围墙  第二遍求围墙外和每块围墙降为1所需的攻击次数  结果爆栈  改为BFS后AC DFS的加了一句这个 #pragma comme ...

  8. [Akka]发送一条消息的内部流程

    本想通过了解一下Akka-actor工程中主要的类的概念,来看下Akka内部运作的机制.无奈里边的类的确太多,注释中对每个类的功能也没有足够的解释.所以还是通过debug的方式,找个入手点,看一下互相 ...

  9. Samza文档翻译 : Architecture

    http://samza.incubator.apache.org/learn/documentation/0.7.0/introduction/architecture.html Samza由三层组 ...

  10. c/c++强制类型转换

    转自c/c++强制类型转换 Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意? A:转换的含义是通过改变 ...