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

单片机学习笔记.AD/DA(略含有SPI,用的是普中开发板上的XPT2046芯片)

 AD/DA基础知识 

硬件电路: 


 模电运放知识回顾: 

   虚短(Virtual Short)

  • 定义:运放同相输入端(+)和反相输入端(-)的电位近似相等,即V+= V-,仿佛两个输入端短路,但实际上并未真正连接(无电流通过),因此称为 “虚短”。

  虚断(Virtual Open)

  • 定义:运放同相输入端和反相输入端的输入电流近似为零,即 I+ = I- ,仿佛两个输入端开路,但实际上仍有微弱电流(理想运放忽略),因此称为 “虚断”。

eg.                                                       分析:

 


 DA原理:

T型电阻网络DA: 

 PWM型DA:


SPI协议:

 这里时序图以XPT2046为例:

 硬件原理图:

  

引脚定义: 

sbit XPT2046_CS=P3^5;
sbit XPT2046_DCLK=P3^6;
sbit XPT2046_DIN=P3^4;
sbit XPT2046_DOUT=P3^7;

 命令字:

选定对应通道: 

在头文件里对命令字进行宏定义 :

#define XPT2046_XP_8  0x9c         //1001 1;8位1:单端00
#define XPT2046_YP_8  0xDc
#define XPT2046_VBAT_8 0xAc
#define XPT2046_AUX_8 0xEc#define XPT2046_XP_12  0x94        //1001 1;8位1:单端00
#define XPT2046_YP_12  0xD4
#define XPT2046_VBAT_12 0xA4
#define XPT2046_AUX_12 0xE4

 XPT2046读取AD值:

unsigned int XPT2046_ReadAD(unsigned char Command)//s=1开始检测,a2a1a0选地址
{unsigned char i;unsigned int ADValue;XPT2046_CS=0;XPT2046_DCLK=0;for(i=0;i<8;i++){XPT2046_DIN=Command&(0x80>>i);XPT2046_DCLK=1;Delayms(1);XPT2046_DCLK=0;}for(i=0;i<16;i++){XPT2046_DCLK=1;Delayms(1);XPT2046_DCLK=0;if(XPT2046_DOUT==1){ADValue|=(0x8000>>i);}}XPT2046_CS=1;if(Command&0x08)//0000 0100{return ADValue>>8;}else{return ADValue>>4;}
}

http://www.lryc.cn/news/604885.html

相关文章:

  • Rust × Elasticsearch官方 `elasticsearch` crate 上手指南
  • 《安富莱嵌入式周报》第356期:H7-TOOL的250M示波器模组批量生产中,自主开发QDD执行器,开源14bit任意波形发生器(2025-07-28)
  • ConcurrentHashMapRedis实现二级缓存
  • (LeetCode 面试经典 150 题) 141. 环形链表(快慢指针)
  • 如何将JPG、PNG、GIF图像转换成PDF、SVG、EPS矢量图像
  • 简单线性回归模型原理推导(最小二乘法)和案例解析
  • react+ant design怎么样式穿透-tooltip怎么去掉箭头
  • 工作笔记-----存储器类型相关知识
  • Solon v3.4.2(Java 应用开发生态基座)
  • Java 控制台用户登录系统(支持角色权限与自定义异常处理)
  • python之asyncio协程和异步编程
  • 【MySQL学习|黑马笔记|Day3】多表查询(多表关系、内连接、外连接、自连接、联合查询、子查询),事务(简介、操作、四大体系、并发事务问题、事务隔离级别)
  • 自动化与配置管理工具 ——Ansible
  • 创建型设计模式-Builder
  • Newman+Jenkins实施接口自动化测试
  • 浏览器pdf、image显示
  • 防火墙与入侵检测
  • Linux下C/C++服务端崩溃排查手册
  • VMware16安装Ubuntu-22.04.X版本(并使用桥接模式实现局域网下使用ssh远程操作Ubuntu系统)
  • Linux 进程管理与计划任务设置
  • 16-C语言:第17天笔记
  • UnityHub Validation Failed下载编辑器错误,添加模块报错的解决方案
  • 外网访问文档编辑器Docsify(Windows版本),内网穿透技术应用简便方法
  • 论文阅读|ArxiV 2024|Mamba进一步研究|VSSD
  • Linux虚拟内存
  • Vision Transformer (ViT) 详解:当Transformer“看见”世界,计算机视觉的范式革命
  • LeetCode 160:相交链表
  • 【推荐100个unity插件】Unity 创意编程库——Klak插件的使用
  • 数据驱动的自动驾驶虚拟测试方法
  • Qt 嵌入式设备驱动开发