当前位置: 首页 > news >正文

江科大51单片机笔记【16】AD/DA(上)

写在前言


  此为博主自学江科大51单片机(B站)的笔记,方便后续重温知识

  在后面的章节中,为了防止篇幅过长和易于查找,我把一个小节分成两部分来发,上章节主要是关于本节课的硬件介绍、电路图、原理图等理论知识,主要是为下章节的代码部分打基础。

  我的单片机是24年12月在tb普中买的,型号是STC89C52,在原视频中引脚或接口不对应的我都会改正,保证在我的机子上能运行才发上来的,还有一些文字部分是我的理解,并非照搬,所以可能有理解不到位的现象。

  如有误或交流,敬请指点提问

总览:AD/DA,硬件电路,运放,运放电路,DA原理和电路原理,AD原理,AD/DA性能指标,开发板所用AD芯片介绍

一、AD/DA介绍

  • AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号
  • DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换为模拟信号
  • AD/DA转换打开了计算机与模拟信号的damned,极大的提高了计算机系统的应用范围,也为模拟信号数字化处理提供了可能
  • ADC:模数转化器;DAC:数模转化器
  • 左1是光敏电阻,左2是热敏电阻,左3是麦克风,前3个都是AD,左4是扬声器(DA)

二、硬件电路模型

  • AD转换通常有多个输入通信,用多路选择开关连接到AAD转换器,以实现AD多路复用的目的,提高硬件利用率,常用于电压的转换。DA一般不会多路复用,因为模拟信号是连续的不好分开,但DA用的比较少
  • AD/DA与单片机数据传送可使用并口(速度快、原理简单),也可使用串口(接线少、使用方便)
  • 可将AD/DA模块直接集成在单片机内,这样直接写入/读出寄存器就可进行AD/DA转换,单片机的IO口可自己复用为AD/DA的通道

三、硬件电路 

下面这两个模块是我们开发板的电路图

首先是ADC,这个芯片其实是一个触摸屏的芯片,他的原理也是AD转换

然后是DAC,是PWM型的,需要输出PWM这种波形 

上面的不好理解,所以拿另外两种ADC和DAC来讲解,这两种是比较经典的,属于比较牢的了,不推荐使用,比如下面的PCF8591,是一个I2C总线类型的

上面是ADC0809,下面是DAC0832

首先是上面的ADC,输入输出都有八个通道,输入首先经过8路模拟开关(由地址锁存与译码控制),然后经过AD转换,再进过一个缓冲器输出出来,右边就是实际的芯片

 首先是输入,经过输入寄存器,然后就DAC寄存器(用于多路同步)

四、运算放大器

  • 运算放大器(简称运放)是具有很高放大倍数的放大电路单元。内部集成了差分放大器、电压放大器、功率放大器三级放大电路,是一个性能完备、功能强大的通用放大电路单元,由于其应用十分广泛,现已作为基本的电路元件出现在电路图中
  • 运算放大器可构成的电路有:电压比较器、反相放大器、同相放大器、电压跟随器、加法器、积分器、微分器等
  • 运算放大器电路的分析方法:虚短、虚断(负反馈条件下)
  • 右边的图是LM358

     五、运放电路

    六、DA原理

    下图该电路即上图中红框的详细电路图

    I=256*I0

    接下来再介绍一下PWM型DAC,也就是我们开发板上的DAC

    图中一个电阻跟一个电容这样并联叫RC滤波器,换位置叫高通滤波器,两组的话就是二阶滤波器,效果更好,把交流分量滤掉,留下直流分量

    电压跟随器是为了提高驱动能力

    七、AD原理

    逐次逼近型ADC,当信号通过选择开关进来后,用一个DAC与这个未知的电压比较,让这两个电压相等,这样就能间接得出未知的电压值

    八、AD/DA性能指标

    • 分辨率:值AD/DA数字量的精细程度,通常用位数表示。例如,对于5V电源系统来说,8位的AD可将5V等分为256份,即数字量变化最小一个单位时,模拟量变化5V/256=0.01953125V,所以,8位AD的电压分辨率为0.01953125V,AD/DA的位数越高,分辨率就越高
    • 转换速度:表示AD/DA的最大采样/建立频率,通常用转换频率或转换时间来表示,对于采样/输出高速信号,应注意AD/DA的转换速度

    九、XPT2046

    AD的最基本的概念:电压变成内存中的数据,DA就是把数据转换为电压

    下面是时序 

    采用的是SPI通信

    主要有四条线CS,DCLK,DIN,DOUT

    每一个芯片都有一个CS片选,后面三个是复用的,DCLK是上升沿输入,下降沿输出,

    DIN是高位发送,第一位是控制字,A2A1A0就是控制多路选择,然后是后面是模式选择

    DOUT本来是16位的,但是只有12位是有用的,所以后面的用0填充


    http://www.mrgr.cn/news/94237.html

    相关文章:

  • 环境配置 | 5分钟极简Git入门:从零上手版本控制
  • IP 地址
  • ROS实践(四)机器人建图(gmapping)
  • 3.数据结构-串、数组和广义表
  • 使用Leaflet 搭建一个前端地图项目,实现类似原神、黑神话悟空的标点互动地图效果
  • 云效、流水线、Gradle缓存问题、build.gradle配置snapshot
  • css 知识点整理
  • vue-next-admin修改配置指南
  • python 面试题
  • 使用arm嵌入式编译器+makefile编译管理keil项目
  • node.js-node.js作为服务器,前端使用WebSocket(单个TCP连接上进行全双工通讯的协议)
  • 江科大51单片机笔记【10】DS1302时钟可调时钟(下)
  • 江科大51单片机笔记【15】直流电机驱动(PWM)
  • Android ANR 监控方法与事件分发耗时优化实战
  • 江科大51单片机笔记【12】AT24C02(I2C总线)
  • Django与视图
  • 【C++ 系列文章 基础 01 -- std::string 与 fmt::format】
  • C语言中的assert断言,你了解多少呢?
  • (Lauterbach调试器学习笔记)一、首次连接TriCore开发板调试
  • 16 | 实现简洁架构的 Store 层