电子说
HK32F103x/C/D/E是深圳市航顺芯片技术研发有限公司推出的中大容量的103系列芯片。作为32位MCU常用ADC模块,在各类产品中有诸多应用,比如节省I/O引脚的按键检测应用,以及各类传感器,比如光传感器、湿度传感器、温度传感器等,把各种各样的模拟信号转换为电压、电流信号,ADC模块通过对该电压、电流信号的精确测量,实现MCU对外部世界的精确感知,从而实现对应用的精准控制。
HK32F103x/C/D/E的ADC的功能描述:
12 位 ADC 是一种逐次逼近型模拟数字转换器。它有多达 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。
模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。
ADC 的输入时钟不得超过 14MHz,它是由 PCLK2 经分频产生。
HK32F103x/C/D/E的ADC的主要特征:
● 12 位分辨率
● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断
● 单次和连续转换模式
● 从通道 0 到通道 n 的自动扫描模式
● 自校准
● 带内嵌数据一致性的数据对齐
● 采样间隔可以按通道分别编程
● 规则转换和注入转换均有外部触发选项
● 间断模式
● 双重模式(带 2 个或以上 ADC 的器件)
● ADC 转换时间:
─ HK32F103xx 增强型产品:时钟为 56MHz 时为 1μs(时钟为 72MHz 为 1.17μs)
● ADC 供电要求:2V 到 5.5V
● ADC 输入范围:VREF- ≤ VIN ≤ VREF+
● 规则通道转换期间有 DMA 请求产生。
注意:如果有 VREF-引脚(取决于封装),必须和 VSSA 相连接
外部触发转换
转换可以由外部事件触发(例如定时器捕获,EXTI 线)。如果设置了 EXTTRIG 控制位,则外部事件就能够触发转换。EXTSEL[2:0]和 JEXTSEL2:0]控制位允许应用程序选择 8 个可能的事件中的某一个,可以触发规则和注入组的采样。
注意:当外部触发信号被选为 ADC 规则或注入转换时,只有它的上升沿可以启动转换。
表 43 ADC1 和 ADC2 用于规则通道的外部触发
表 44 ADC1 和 ADC2 用于注入通道的外部触发
表 45 ADC3 用于规则通道的外部触发
表 46 ADC3 用于注入通道的外部触发图片
软件触发事件可以通过对寄存器 ADC_CR2 的 SWSTART 或 JSWSTART 位置“1”产生。规则组的转换可以被注入触发打断。
以下是HK32F103系列的功能框图:
HK32F103x/C/D/E在ADC使用过程中需要注意的地方:
问题描述:
[1]当 ADC 在常规通道采样时,使用并配置一个通道进行采样,软件启动采样,然后利用判断EOC的方式来读取采样数据,读到的数据是上一次采样的结果。
[2]当 ADC 在常规通道采样时,使用并配置多个通道采样,软件启动采样,然后利用判断EOC的方式去读取采样数据,读到的数据是上一个通道采样的结果。
根本原因:
在常规通道采样时,由于 EOC 标志置位后,数据寄存器 ADC_DR 没有被及时正确更新。ADC_DR寄存器要么是上一个采样的数据(对应上述[1]),要么是上一个通道的采样数据(对应上述[2])。
解决方案:
在读取 ADC_DR 数据寄存器之前,增加 3 个 NOP 指令。示例代码如下:
参考应用代码如下:
来源: 航顺芯片(作者:Shaodong)
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !