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应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
随机推荐
- Code for the Homework2
第二次作业,最近有点忙,一直没写,先发一下,关节角计算有点问题,后面抽时间改 #include<iostream> #include <Eigen/Dense> #includ ...
- Android Studio 单刷《第一行代码》系列 04 —— Activity 相关
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- asp网站通用后台代码设计
main2.css: a:link {color: #333333; text-decoration: none}a:visited {color: #000000; text-decoration: ...
- 用IDEA调试Play工程
IDEA的版本是14.0.1,运行在MAC OS X Yosemite上. IDEA已经装了Scala插件,但是在新建工程中,Scala的选项中并没有Play框架,不知道什么原因. 导入Play工程 ...
- DJANGO中filter_horizontal和raw_id_fields的作用
在作多项选择的操作方便性,及单项选择太多时,会有好一点的体验... class UserAuthorAdmin(admin.ModelAdmin): # raw_id_fields = ('group ...
- android 在一个scrollView里面嵌套一个需要滑动的控件(listView、gridView)
package cn.via.dageeeOrderFood.widget; import android.content.Context; import android.graphics.Point ...
- 李洪强iOS开发之图片拉伸技巧
纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能.极强的用户体验.华丽简洁的外观.华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设 ...
- SaaS系列介绍之三: SaaS的特性与作用
1 SaaS的特性 最早的SaaS服务之一当属在线电子邮箱,极大地降低了个人与企业使用电子邮件的门槛,进而改变了人与人.企业与企业之间的沟通方式.发展至今,SaaS服务的种类与产品已经非常丰富,面向个 ...
- iOS 图片背景模糊效果
iOS 图片背景模糊效果 1.使用CoreImage中的模糊滤镜 原始效果图如下: CoreImage的实现: - (void)viewDidLoad { [super viewDidLoad]; / ...
- [Unity菜鸟] Unity Web Player 相关问题 (待完善)
1. 发布网页版Unity自适应网页大小 发布网页版,Unity3D自适应网页大小.这个问题困扰了我很长时间,今天终于把他解决了,给大家分享一下. 这里用Uinty4.0发布网页版,我去掉了里面的标题 ...