一、 前言上一篇文章对对芯片的资源,资料,开发板板载资源进行了了解,本次开始进行基本外设ADC的使用,本次借助板载的继电器以及一个上位机工具完成ADC的使用。 二、 ADC模块简介ADC 是一种 12 位逐次逼近型模拟数字转换器,拥有 19 路外部通道和 2 路内部通道,支持单次、连续、扫描或间断转换多种模式。模拟监控器特性允许应用程序监测输入电压是否超出设定的电压范围。 ADC特性: 12 位分辨率 通道输入电压范围:AVSS < Vin < AVDD 最大转换速率:250Ksps 参考电压支持 AVDD 和外部 VREF+/VREF- 通过内部软件触发或外部硬件触发启动 ADC 模拟监控器功能:可进行单通道或者多通道的电压检查,监控通道是否低于阈值或者高于阈值。 ADC结构框图: 三、 硬件设计本次使用的ADC通道为ADC0的通道1,连接到开发板的电位器上,通过调整继电器的位置可以得到不同的ADC电压,硬件原理图如下所示: 实际对应开发板: 四、 程序设计在进行程序讲解前,先对一个上位机进行介绍,Serial Studio,一个串口分析工具,这里主要掌握使用就可以,可以将ADC采集到的值放到上位机中进行分析。
打开上位机,界面比较简洁。 电机JSON编辑器,进行配置,配置数据接收开始标志和数据接收标志,点击保存即可。 本次使用的ADC采集使用硬件定时器触发的方式,使用Time0定时100ms触发。 时钟初始化,以及ADC触发方式配置,将ADC触发采样配置Timer0溢出触发,触发延迟时间为0,总线时钟为1分频。 定时器配置: 配置定时器为中断100ms触发 ADC配置: 根据数据手册中引脚复用表,需要配置的是ADC0的通道1,引脚连接的是PA10,如下所示,需要将功能复用为Function2 配置如下: ADC配置: 规则组通道转换序列和转换速率配置: 配置完成后,接下来将ADC采样到的值按照我们需求的格式通过串口打印出来,首先,读取ADC采样值。 通过Printf打印ADC转换的值。 打开上位机,连接串口,查看ADC采样值 选择仪表盘,可以查看ADC采集的电压和波形 扭动电位器按钮,可以看到总体的趋势,如下所示: 保存已经采集的数据,可对历史数据进行分析,如下所示,ADC采样值只有轻微的变化。 五、 总结本次进行ADC的使用,其中涉及到了ADC的配置,定时器配置等,以及使用了上位机同步使用,资料比较详细,有仔细说明,方便入门,后面希望有更多的活动。
|