天南地北客
发表于: 2018-9-13 10:28:46 | 显示全部楼层

NUCLEO-8S208RB(基于STM8S208RBT6)和NUCLEO-8L152R8(基于STM8L152R8T6)开发板可用于评估所有STM8S系列和STM8L系列微控制器的主要特性。


本应用笔记简要介绍了如何在NUCLEO-8S208RB和NUCLEO-8L152R8开发板上使用ADC、TIM和GPIO外设。


当微控制器(本例中为STM8S208RBT6或STM8L152R8T6)使用连接到主机电脑的USB电缆供电时,定时器根据用户定义的周期触发ADC,以转换由可变电阻RV1(10KΩ)提供的模拟电压。 得到的平均电压测量值显示在LED灯条上。


1.    应用说明

本节主要介绍了使用NUCLEO-8S208RB或NUCLEO-8L152R8开发板在LED灯条上显示可变电压的硬件要求、应用程序的原理图和工作原理。


1.1     硬件要求

没有使用板载的组件。

所需的外部组件包含:

•    四个LED:LD2、LD3、LD4、LD5

•    一个10KΩ可变电阻:RV1

•    四个1KΩ电阻:R1、R2、R3、R4

•    一个100 nF电容:C1。


1.2      应用原理图

电容C1滤除ADC输入引脚上的电压尖峰:

•    NUCLEO-8S208RB的PE6引脚上的ADC2_IN9功能

•    NUCLEO-8L152R8的PC7引脚上的ADC1_IN3功能能

电阻器R1、R2、R3和R4分别限制流过LD2、LD3、LD4和LD5的电流。

图1.   STM8S系列应用原理图

图1.   STM8S系列应用原理图.jpg

图2.   STM8L系列应用原理图

图2.   STM8L系列应用原理图.jpg


1.3   规则

该应用手册使用了ADC1或ADC2、TIM1和GPIO外设。

可调电阻RV1的输入电压模拟信号在每个开发板中是不同的:

•     NUCLEO-8S208RB:在ADC2(PE6)的通道9上进行采样和滤波,内部由TIM1触发

•     NUCLEO-8L152R8:在ADC1(PC7)的通道3上进行采样和滤波,内部由TIM1触发

该信号的平均值体现在LED灯条(LD2-5)上。

注意:即使默认情况下器件(STM8S208RBT6或STM8L152R8T6)使用3.3 V供电,但是在STM8S上用户仍可以将MCU VDD电源从3.3 V切换到5 V。

表2.    电压和LED对应关系

电压(V)
点亮LED的位号
0.0 - 0.4
0.4 - 1.25
LD2
1.25 - 2.0
LD2 + LD3
2.0 - 2.8
LD2 + LD3 + LD4
2.8 - 3.3
LD2 + LD3 + LD4 + LD5

2.     软件说明

此应用程序既没有使用STM8S系列/ STM8L系列标准库,也没有使用STM8触摸传感器库。本应用程序中使用的外围设备是:

•     ADC:电压采集。需要配置为:

      - 单一转换模式。

      - 由TIM1 TRGO外部触发。

      - 对于STM8L,ADC_clock = Fmaster / 2;对于STM8S,ADC_clock = Fmaster / 8。

      - 左对齐结果(否则需要修改软件才能计算平均值) 。

      - 对STM8S系列的ADC输入9和STM8L系列的ADC输入3禁用施密特触发器。

•     TIM1:定时器TIM1在此应用中有两个目的:

      - 当计数器值达到CCR1(捕获/比较中断)时,唤醒ADC进行转换。此操作对于在转换之前允许ADC稳定时间非常有用。

      - 发送转换触发信号以在计数器值达到TIM1_ARR时启动ADC转换。

注意:通过这两个事件,用户可以轻松管理ADC唤醒和转换时序。本例中,TIM1必须在PC1上配置compare-OC1REF触发输出和 PWM1模式(负极性):用于测试目的(准确测量稳定时间)。

•      GPIO:配置PB0、PB1、PB2和PB3在推挽模式,以控制指示灯LD2、LD3、LD4和LD5。


ADC采集原理在下面的列表中进行描述,并在后面的图中列出来。

1.     TIM1配置为向上计数计数器。

2.     当发生比较/捕获中断时,ADC被唤醒进行转换(ADC转换之前会考虑ADC的稳定时间)。

3.     在TIM1 TRGO上,ADC开始转换。

4.      转换完成后,结果存储在RAM中,ADC关闭,直到下一次比较/捕获中断。

5.      当存储了八个转换结果时,主程序计算这些结果的平均值,然后将该值显示在LED灯条上。

图3.    ADC采集原理

图3.    ADC采集原理.jpg


2.1   应用软件流程图

本节包含主循环流程图、ADC中断函数流程图和TIM1捕获/比较中断流程图。

2.1.1    主循环流程图

图5.   主循环流程图

图5.   主循环流程图.jpg


2.1.2    ADC中断程序

当ADC1完成一次模数转换时,会发生该中断。每次发生中断时,转换结果存储在一个名为AD的表中。当此表已满时,变量ADSampRdy设置为1,并且AD表由主程序处理(它计算存储值的平均值)。 在中断例程结束时ADC切换为关闭状态。

注意:只有在主函数处理完上一个AD表时,才会存储结果。

图6.   ADC EOC中断流程图

图6.   ADC EOC中断流程图.jpg


2.1.3 TIM1捕获/比较中断

每次TIM1计数器值等于比较寄存器值CCR1时,都会发生此中断。在中断过程中,通过设置CR1寄存器的ADON位触发转换。

图7.    TIM1捕获/比较流程图

图7.    TIM1捕获比较流程图.jpg

3.    修订历史记录表

表3.    文档修订历史记录

日期
版本
更改内容
2018年6月29日
1
首次发布。
跳转到指定楼层
Ableson
发表于: 2020-4-15 16:51:38 | 显示全部楼层

:lol:lol
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 10 | 回复: 18



手机版|

GMT+8, 2024-11-21 23:41 , Processed in 0.053788 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表