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应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
随机推荐
- 实时数据处理环境搭建flume+kafka+storm:2.flume 安装
1. 解压 tar -zxvf 2.配置 拷贝配置文件 :cp flume-conf.properties.template flume-conf.properties ...
- 一个简单的aJax——后台用servlet技术
示例:webDemo 一.客户端 <%-- Created by IntelliJ IDEA. User: Administrator Date: 15-12-2 Time: 上午5:41 To ...
- 【链表】BZOJ 2288: 【POJ Challenge】生日礼物
2288: [POJ Challenge]生日礼物 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 382 Solved: 111[Submit][S ...
- zoj 3725
题意: n个格子排成一条直线,可以选择涂成红色或蓝色,问最少 m 个连续为红色的方案数. 解题思路: 应该是这次 ZOJ 月赛最水的一题,可惜还是没想到... dp[i] 表示前 i 个最少 m 个连 ...
- Titan DB的一些问题
使用熟悉一点的系统来测试TitanDB,HBASE+ES,记录下来一些小tips. 1.首先TitanDB支持的Hadoop只有1.2.1,所以Hbase自然也只能取到0.98,虽然官网上提供了tit ...
- 我见过的 Objective-C, 讲的最通俗易懂的入门教程....
http://www.cnblogs.com/mjios/category/454764.html ---- 给力...
- C语言 结构体的内存对齐问题与位域
http://blog.csdn.net/xing_hao/article/details/6678048 一.内存对齐 许多计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地 ...
- Android UI-开源框架ImageLoader的完美例子
Android开源框架ImageLoader的完美例子 2013年8月19日开源框架之Universal_Image_Loader学习 很多人都在讨论如何让图片能在异步加载更加流畅,可以显示大量图片, ...
- Android:ViewPager适配器PagerAdapter的使用
PageAdapter是一个抽象类,直接继承于Object,导入包android.support.v4.view.PagerAdapter即可使用. 要使用PagerAdapter, 首先要继承Pag ...
- Eclipse中查看Android模拟器SD卡目录
· 有时候用到Android模拟器来模拟SD卡相关操作,在Eclipse中可以直接查看SD卡目录: 首先,新建模拟器的时候要创建SD卡,存储的大小根据需要创建: 启动模拟器,在Eclipse中打开视图 ...