ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【嵌入式学习】嵌入式原理知识-ADC(七)

【嵌入式学习】嵌入式原理知识-ADC(七) 1. 逐次逼近型ADC1.1 ADC简介ADC- Analog Digital Converter 模拟数字信号转换器模拟信号时间连续 幅度连续的信号数字信号 时间离散 幅度也离散的信号1.2 单片机上的ADCADC也是单片机上的片上外设是12位逐次逼近型ADC1.3 采样深度采样深度用多少位二进制数表示转换结果采样深度决定了采样的精度。1.4 逐次逼近型工作原理先采电压从高位到低位二分试探比较逐位确定比特全部位判定完输出数字量。内部结构图如下所示1.5 采样保持电路采样保持电路结构如下图就是给电容充电作为采样过程。然后断开开关后电容的电压就保存了采样的电压作为保持过程这里也涉及到后面的参数的设置。2. ADC外设的结构框图2.1 ADC多路复用采用一路ADC通过控制采样开关实现多路模拟信号的采样。上述的方法也就是每个采样开关对应ADC的一个通道2.2 ADC常规序列把多路ADC采样写进常规序列。常规序列就是把每个通道采集按照规划先后列好然后按照规划先后进行采样。先闭合那个开关后闭合那个开关每个开关闭合多少时间都是按照常规序列进行先后处理例如下图外部触发信号是常规序列的启动信号经过外部触发信号决定启动常规序列与否。当出现上升沿时候进行一次转化。当常规序列转化完成EOC标志位会至12.3 ADC注入序列把多路ADC采样写进注入序列。注入序列基本上与常规序列相同主要有如下三点区别。此外的区别就是相比于常规序列注入序列具有更高的优先级。如下图所示当常规序列在执行采样但是此时注入序列触发则有限采样注入序列当注入序列转化完成JEOC标志位会置13. 采样时间和转换时间采样时间开关闭合的时间长度。转换时间对采样点进行转换所消耗的时间-通过逐次逼近法转化为数字信号所消耗的时间。3.1 ADC的时钟频率主要查看ADC搭载在那个总线上以及对应的分频系数这里可以看到一般设置为12MhzADC最大的时钟频率为14Mhz超出可能会出现错误。3.2 ADC转化时间转化时间主要取决于ADC的时钟频率公式如下转化每个位都要一个周期所以一共12个周期加上额外的0.5个周期3.3 ADC采样时间采样时间就是采样开关闭合的时间采样时间和信号源的内阻有关内阻影响了电流进而影响电容充电的速度3.4 ADC采样时间计算方法采样时间的公式如下对于一个信号源内阻为10K欧的电阻其采样时间经过计算为3.5 采样时间和保持时间影响时间选长慢慢来选短赶时间采样时间给电容充电的时间✅ 电充得满满的测得准❌ 每次等得久测得慢✅ 等得短测得快❌ 电没充饱结果偏小、乱跳转换时间拿砝码试称的时间✅ 天平稳了再下结论不易判错❌ 整体变慢✅ 整体变快❌ 砝码还在晃就下结论容易判错4. ADC外设的函数4.1 ADC表格与函数表格ADC的结构图参考ADC的结构图对应其函数序号分类编程接口作用1通用ADC_Init设置 ADC 的基本参数2通用ADC_Cmd总开关3通用ADC_GetFlagStatus获取标志位的值4通用ADC_ClearFlag清除标志位5通用ADC_ITConfig配置中断6通用ADC_DMACmd配置 DMA 请求7通用ADC_TempSensorVrefintCmd温度计和参考电压开关8常规序列ADC_RegularChannelConfig配置常规序列的通道9常规序列ADC_ExternalTrigConvCmd外部触发开关常规10常规序列ADC_SoftwareStartConvCmd软件启动常规11常规序列ADC_GetConversionValue读取 DR 寄存器的值12注入序列ADC_InjectedSequencerLengthConfig设置注入序列的长度13注入序列ADC_InjectedChannelConfig配置注入序列的通道14注入序列ADC_ExternalTrigInjectedConvCmd外部触发开关注入15注入序列ADC_ExternalTrigInjectedConvConfig选择注入序列的外部触发16注入序列ADC_SetInjectedOffset设置注入序列的通道偏置17注入序列ADC_SoftwareStartInjectedConvCmd软件启动注入18注入序列ADC_GetInjectedConversionValue读取 JDRx 寄存器的值19校准相关ADC_ResetCalibration复位校准寄存器20校准相关ADC_GetResetCalibrationStatus查询复位是否完成21校准相关ADC_StartCalibration启动校准22校准相关ADC_GetCalibrationStatus查询校准是否完成4.2 ADC模式ADC有如下的模式选择模式说明连续模式开启一次触发后转换完成自动开启下一次转换循环不停采集关闭单次模式一次触发只转换1次再次采集需要重新触发数据对齐方式右对齐12位结果放在16位寄存器低12位电压计算方便常用左对齐12位结果放在16位寄存器高12位适合移位运算常规序列外部触发源选择启动常规ADC转换的信号源可以是软件触发、定时器信号、外部引脚信号双ADC模式单ADC模式双ADC可配置同步、交替等模式需要芯片拥有两个ADC外设-可以提高采样率-高采样示波器的实现常规序列通道数设置常规序列需要采集的通道总个数配合扫描模式使用扫描模式开启扫描多通道依次轮流采集多通道采集必须开启关闭扫描仅采集单个通道不轮询切换通道4.3 ADC的触发模式模式说明软件触发调用函数ADC_SoftwareStartConvCmd代码手动发命令启动ADC转换。灵活触发时间由程序决定。定时器外部触发使用定时器TRGO事件更新/比较事件作为触发信号上升沿启动ADC可以实现固定周期精准采样。引脚外部触发使用外部GPIO引脚信号EXTI引脚电平变化时启动ADC适合外部硬件事件触发采集。5. ADC的扫描模式当有多个通道需要ADC采样的时候可以选择扫描模式对多个通道进行采样。
返回列表