嵌入式学习55-ARM4(ADC和I²C)

1、什么是ADC,模拟量和数字量有什么特点? ADC: 模拟到数字 转换器(Analog-to-Digital Converter)的缩写
模拟信号: 一般是指 连续 变化的电压信号,其数值在一定范围内变化 数字信号: 是由一系列 离散 的数字 表示。 👈 (背)
只能取有限的值,通常以二进制形式表示。

它是一种电子设备或模块,2440内部拥有一个ADC外设 用于将 连续变化 的 模拟信号 转换为 离散的 数字信号,以便数字系统(如微处理器、微控制器等)能够对其进行 处理和分析。

2、什么是ADC的分辨率? 量化: 采样得到的 连续模拟信号 经过量化转换为 数字形式。 量化是将每个采样值 映射到一个 离散的数字值 的过程。 这通常通过 比较 采样值参考电压 之间的差异,并将其转换为数字表示。
ADC量化的过程 是 相对于一个基准值的,这个基准值称之为 基准电压
ADC的分辨率
表示其能够 辨别最小模拟量的能力。通常以位数来表示, 例如 8 位、10 位、12 位、16 位等。
2440分辨率(10位

3、ADC转换的原理是什么?
一般采用 逐次逼近法
ADC会先拿 1.采样 电压Vadc跟基准电压Vref的 1/2 进行比较
2.如果**(采样电压)** Vadc>(基准电压)Vref,则结果为1,否则结果为0。
之后 3.继续拿Vadc和Vref的 1/4 或Vref的 3/4 继续比较。
这个过程有点像 二分法,每次比较都会使 量化 的结果 逼近真实值 。 ←
(背)

很明显,比较的次数决定了测量的精度,这个精度被称之为 ADC的分辨率
比如一个比较了8次的ADC外设,它就称为8位ADC,其结果是0~255之间的一个数值,设该数值为n,那么实际电压就是Vref * (n/255)。如果把比较次数增加到10次,结果就是0~1023之间的一个数。 常见的分辨率包括8位,10位,12位和16位

4、什么是IIC?

IIC(Inter-Integrated Circuit) 是一种具有两线传输串行通信总线 ,使用 多主从架构 ,由飞利浦公司在1980年为了让主板、嵌入式系统或手机连接低速周边设备而提出,适用于数据量不大且传输距离短的场合

IIC串行总线由两根信号线组 一根是 双向数据线SDA 另一根是 单向时钟线SCL (同一时刻是单向的) 在空闲状态 时,SDA和SCL线都置'1' ,为高电平 ( IIC为同步半双工 通信方式) (上拉电阻 4.7K--10K之间)

常见的传输速率有:100kb/s、300kb/s、3.4Mkb/s

5、请简述IIC时序逻辑

I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。

空闲时 是SCL和SDA高电平
开始信号: (时钟线) SCL为高电平时 (数据线) SDA高电平低电平跳变,开始传送数据
结束信号: SCL为高电平时 SDA由低电平高电平跳变,结束传送数据
应答信号: 接收数据的IC在接收到8bit数据后 向发送数据的IC发出特定的低电平脉冲表示已收到数据

CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号 CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。

若未收到应答信号,由判断为受控单元出现故障。

相关推荐
weixin_307779131 分钟前
PySpark实现GROUP BY WITH CUBE和WITH ROLLUP的分类汇总功能
大数据·开发语言·python·spark
信徒_10 分钟前
go 语言中的线程池
开发语言·后端·golang
Pandaconda10 分钟前
【Golang 面试题】每日 3 题(六十五)
开发语言·经验分享·笔记·后端·面试·golang·go
至暗时刻darkest11 分钟前
go 查看版本
开发语言·后端·golang
向哆哆25 分钟前
Java与NoSQL数据库的集成与优化
java·开发语言·nosql
MSTcheng.28 分钟前
【C语言】指针(5)
c语言·开发语言
╮壞孩子的天29 分钟前
C语言多人聊天室 ---chat(客户端聊天)
c语言·开发语言
IT猿手40 分钟前
2025高维多目标优化:基于导航变量的多目标粒子群优化算法(NMOPSO)的无人机三维路径规划,MATLAB代码
开发语言·人工智能·算法·机器学习·matlab·无人机·cocos2d
呱牛do it44 分钟前
Python Matplotlib图形美化指南
开发语言·python·matplotlib
pianmian11 小时前
python制图之小提琴图
开发语言·python·信息可视化