AN3236 STM8应用笔记 触摸按键设计(英文)
STM8的按键程序学习笔记
key_delay_count++; //延时计数器开始计数
if(key_delay_count>=65530)
{key_delay_count=0;key_down_IF=0;} //按键按下时间过长,则是故障,不执行按键反馈
if(key_delay_count>=key_delay_long)
//#define key_1_in() {(GPIO_ReadInputPin(GPIOC, GPIO_PIN_5)==SET)? 1:0}
/*设置端口按键中断的触发方式下降沿和低电平触发*/
#define key_int_way EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_ONLY);
//#define key_short 0x01; //定义短按键值,按键按下后根据按键1号按键短按最终键值为0x11,长按为0x12.类推
//#define key_long 0x02; //定义长按键值,
//#define key_short 0x01;
//#define key_short 0x01;
注意:系统中断函数中有按键扫描的部分程序INTERRUPT_HANDLER(EXTI_PORTC_IRQHandler, 4)等。
调用方法:
void key_port_init();//按键端口的定义
void scan_key();//按键的扫描程序,放在定时器中断中,定时器1ms中断。
extern unsigned char key_down_IF=0x00; //在中断函数中加入变量声明
void key_interrupt_do()
stm8s触摸按键
目录
目录
用于触摸感应应用的RC感应原理
1 RC 感应原理 .............................................................................................................3 2 硬件实现 ...................................................................................................................5 3 软件实现 ...................................................................................................................6
图8 触摸效果实例
3.4
多次测量以及高频噪声的去除
为了提高测量的精确度,并去除高频噪声,有必要对VIH和VIL进行多次的测量,然后再决定是否 有按键被有效“触摸”。多次测量的次数有两种办法决定:第一和MCU核有关,但是一个固定 值;另外一个就是可配置的数值(从TS固件库的配置文件可以修改)。 对STM8芯片来说,固定的多次测量的次数为8(即进行8次VIH测量和8次VIL测量)。 图9 测量的种类
C = εRε 0 A d
图1 RC网络上的压降
固定电压施加在VIN,VOUT的电压随着电容值的变化而相应增加或者降低, 如图2所示。 图2 测量充电时间
通过计算VOUT的电压达到阀值VTH所需要的充电时间(tC),来得到电容值(C)。 在触摸感应应用中,电容值(C)由两部分组成:固定电容(电极电容,CX)和当人手接触或者靠近 电极时,由人手带来的电容(感应电容,CT)。电极电容应该尽可能的小,以保证检测到人手触 摸。因为通常人手触摸与否,带来的电容变化一般就是几个pF(通常5pF)。 利用该原理,就可以检测到手指是否触摸了电极。
STM8 Nucleo-64开发板使用说明书
AN5183使用STM8 Nucleo-64板调节LED闪烁速度引言NUCLEO-8S208RB(基于STM8S208RBT6)和NUCLEO-8L152R8(基于STM8L152R8T6)板可用于评估所有STM8S系列和STM8L系列微控制器的主要特性。
本应用笔记将简要描述STM8S208RBT6和STM8L152R8T6微控制器的Flash存储器中出厂预编程的演示固件Discover。
此演示固件使用STM8S和STM8L系列内部的基本定时器产生时钟基准,在每次用户按钮被按下时改变LED LD1的闪烁速度。
一旦STM8 Nucleo-64板使用USB线连接到PC机上电,LED LD1开始缓慢闪烁,表示出厂程序已经正常工作。
表 1. 适用产品参考文档•STM8 Nucleo-64板数据摘要(DB3591)•STM8L152R8T6 Nucleo-64板用户手册(UM2351)•STM8S208RBT6 Nucleo-64板用户手册(UM2364)1应用描述1.1硬件要求使用了以下STM8 Nucleo-64板载资源:•LED,LD1•用户按钮B1无需额外硬件即可在STM8 Nucleo-64板上运行此应用软件。
1.2应用原理图有关实现详情,请参阅以下文档:•STM8L152R8T6 Nucleo-64板用户手册(UM2351)•STM8S208RBT6 Nucleo-64板用户手册(UM2364)1.3程序原理此程序使用8-BIT基本定时器TIM4作为时钟基准,控制LED LD1闪烁速度。
STM8S系列或STM8L系列微控制器每次在用户按钮B1上检测到事件时,将调整LED每次翻转的时间延时(TIM4时基的倍数)以相应地改变闪烁频率。
程序启动时,闪烁周期配置为1秒并且LD1以此频率翻转(每秒翻转一次)。
这样配置用户可以直接看到STM8S系列或STM8L系列器件的Flash内部的出厂程序是否正常。
每当在用户按钮B1上检测到按钮事件时,根据下表所述设置加快LD1闪烁频率。
STM8 低功耗模式 STM8应用笔记
STM8 低功耗模式STM8应用笔记四种STM8低功耗模式的主要特性如表12。
(表12:STM8S低功耗模式管理)1.如果外设时钟未被关闭2.包括通讯外设的中断(参见中断向量表)STM8等待(Wait)模式在运行模式下执行WFI(等待中断)指令,可进入等待模式。
此时CPU停止运行,但外设与中断控制器仍保持运行,因此功耗会有所降低。
等待模式可与PCG(外设时钟门控),降低CPU时钟频率,以及选择低功耗时钟源(LSI,HSI)相结合使用,以进一步降低系统功耗。
参见时钟控制(CLK)的说明。
在等待模式下,所有寄存器与RAM的内容保持不变,之前所定义的时钟配置也保持不变(主时钟状态寄存器CLK_CMSR)。
当一个内部或外部中断请求产生时,CPU从等待模式唤醒并恢复工作。
STM8停机(Halt)模式在该模式下主时钟停止。
即由fMASTER提供时钟的CPU及所有外设均被关闭。
因此,所有外设均没有时钟,MCU的数字部分不消耗能量。
在停机模式下,所有寄存器与RAM的内容保持不变,默认情况下时钟配置也保持不变(主时钟状态寄存器CLK_CMSR)。
MCU可通过执行HALT指令进入停机模式。
外部中断可将MCU从停机模式唤醒。
外部中断指配置为中断输入的GPIO 端口或具有触发外设中断能力的端口。
在这种模式下,为了节省功耗主电压调节器关闭。
仅低电压调节器(及掉电复位)处于工作状态。
快速时钟启动HSI RC的启动速度比HSE快(参见数据手册中电特性参数)。
因此,为了减少MCU的唤醒时间,建议在进入暂停模式前选择HSI做为fMASTER的时钟源。
在进入停机模式前可通过设置内部时钟寄存器CLK_ICKR的FHWU位选择HSI做为fMASTER的时钟源,而无需时钟切换。
参见时钟控制章节。
STM8活跃停机(Active Halt)模式活跃停机模式与停机模式类似,但它不需要外部中断唤醒。
它使用AWU,在一定的延时后产生一个内部唤醒事件,延迟时间是用户可编程的。
基于STM8的触摸按键方案
基于STM8的触摸按键方案引言:触摸按键已经成为现代电子产品中的一种常用的用户输入方式。
相比传统的机械按键,触摸按键不需要机械结构,大大降低了产品的故障率,并且能够提供更加灵敏的触摸交互体验。
本文将介绍基于STM8的触摸按键方案,涵盖了原理、设计要点以及实现方法等内容。
1.原理:触摸按键的原理是利用人体电容来实现电压变化的检测。
当人体接近触摸板时,人体的电容会改变触摸板上的电场分布,从而引起电压的变化。
通过测量这种电压变化,可以检测到用户的触摸行为。
2.设计要点:(1)电源管理:触摸按键需要为触摸芯片提供稳定的电源。
在设计电源管理时,需要考虑到触摸板的功耗、电源稳定性以及电池寿命等因素;(2)电容检测:电容检测是触摸按键的核心技术,需要选取合适的电容检测方案,并且能够准确地检测到用户的触摸行为;(3)噪声过滤:触摸按键会受到环境噪声的干扰,需要采取一定的噪声过滤措施,提高触摸的可靠性;(4)通信接口:触摸按键会通过通信接口与主控芯片进行数据传输,需要选择合适的通信接口,并且确保通信的可靠性和稳定性。
3.实现方法:(1)硬件设计:首先,需要设计触摸板电路,包括电容检测电路、滤波电路和通信接口电路等;其次,需要设计电源管理电路,确保为触摸芯片提供稳定的电源。
(2)软件设计:基于STM8的触摸按键方案可以采用定时器+IO口中断的方式来实现。
具体流程如下:i.初始化定时器和IO口中断;ii. 定时器中断发生时,通过IO口中断判断电容的充放电状态,将结果保存;iii. 主循环中检测保存的触摸状态,通过通信接口将其传输给主控芯片。
4.结论:。
AN1104
配置多个电容触摸传感按钮
作者:
Keith Curtis Microchip Technology Inc. Tom Perme Microchip Technology Inc.
介绍
本应用笔记将说明在使用超过 4 个电容触摸传感按钮 时,如何扫描和检测按钮是否按下。本应用笔记针对 PIC16F616系列、PIC16F690系列以及PIC16F887系列 单片机。建议在阅读本应用笔记之前先了解电容触摸传 感的基本概念,这在 AN1101 《电容触摸传感简介》中 进行了介绍。
例 1:
简单的 ISR
void isr { // 如果是电容触摸中断
if (T0IF == 1) {
// 获取 TMR1 读数 StopTimers(); GetMeasurement();
// 测试是否按下 if (IsButtonPressed(index))
SetFlag(index); else
unsigned char
index;
在 ISR 最后,递增扫描的 index 变量,为下一次扫描做 准备。在 index 变量递增之后,必须设置比较器通道选 择位 C1CH<1:0>、C2CH<1:0>,并必须重启 Timer0 和 Timer1。这可以用许多方法实现,但方便的做法是创建 一 个 存 放 4 个 常 量 的 数 组,常 量 是 整 个 寄存器 CM1CON0和CM2CON0的设置值,然后使用index来读 取这些值,并把它们载入寄存器中。
使用默认数量的按钮
默认情况下,比较器模块能够进行电容触摸传感功能 * 的 PIC® 单片机,可以对比较器输入使用内部多路复用 器,最多扫描四个按钮。内部 MUX 通过通道选择位来 进行控制,即 CM1CON0 的 C1CH<1:0> 和 CM2CON0 的 C2CH<1:0>。两个比较器的通道设置必须相同。
单片机 电容触摸按键 报告
任务:MSP-EXP430G2 板上P1.0 上接了一个LED,而在配套的LaunchPad 扩展板上,将MSP430G2553 的P2.0 和P2.5 引出作为电容触摸按键。
要求按下P2.0 后LED 亮,按下P2.5 后LED 灭,程序运行过程中不阻塞CPU,并且实现低功耗运行。
硬件连接:如图所示程序代码:TouchIN.c:#include "MSP430G2553.h"#define KEY_NUM 2 /*触摸按键数目,根据需要修改*/ //=============具体触摸按键IO宏定义,根据需要添加代码===============#define KEY0_INIT P2DIR &= ~BIT0; P2SEL &= ~ BIT0; P2SEL2 |= BIT0 /*按键1开启振荡*/ #define KEY1_INIT P2DIR &= ~BIT5; P2SEL &= ~ BIT5; P2SEL2 |= BIT5 /*按键2开启振荡*/ #define ALL_OSC_OFF P2SEL2 &= ~(BIT0 + BIT5) /*关闭全部触摸振荡*/ /*门限频率的取值取决于定时扫描的时长,3300对应的是1.9ms定时情况,实际定时可取1ms~20ms*/const unsigned int FREQ_THRESHOLD[KEY_NUM]={3300,3300}; /*参考值,需用仿真器查看后调整*///-----静态局部变量----static unsigned int Freq[KEY_NUM]={0}; //当前测频值static unsigned char Key_Buff[KEY_NUM][4]={0}; // 软件FIFOstatic unsigned char Key_Num=0; //按键编号//-----全局变量,复杂程序中可以移植到Global.h统一管理-----unsigned char TouchIN=0; //相当于PxIN寄存器作用,支持8个触摸按键void Key_Measure_Freq(){Freq[Key_Num]=TAR; //当前编号按键的频率被测得ALL_OSC_OFF; //关闭所有振荡IOKey_Num++; //切换下一振荡IOif (Key_Num>=KEY_NUM) Key_Num=0; //各触摸按键循环交替switch (Key_Num){case 0 : KEY0_INIT; break; //振荡IO初始化case 1 : KEY1_INIT; break;default: break;}TA0CTL = TASSEL_3+MC_2+TACLR; //增计数清0,并开始计数}void Key_FIFO() //存储连续4次测量数据{Key_Buff[Key_Num][0]=Key_Buff[Key_Num][1];Key_Buff[Key_Num][1]=Key_Buff[Key_Num][2];Key_Buff[Key_Num][2]=Key_Buff[Key_Num][3];if( Freq[Key_Num]<FREQ_THRESHOLD[Key_Num]) //判断是否识别为按键Key_Buff[Key_Num][3]=1;elseKey_Buff[Key_Num][3]=0;}void Key_Judge() //按键仲裁,只有连续4次测量结果一致,才算数{if( (Key_Buff[Key_Num][0]==0)&&(Key_Buff[Key_Num][1]==0)&&(Key_Buff[Key_Num][2]==0)&&(Key_Buff[Key_Num][3]==0) )// TouchIN=0<<Key_Num; //按键松开(错误代码)TouchIN &=~(1<<Key_Num); //按键松开(正确代码)if( (Key_Buff[Key_Num][0]==1)&&(Key_Buff[Key_Num][1]==1)&&(Key_Buff[Key_Num][2]==1)&&(Key_Buff[Key_Num][3]==1) )// TouchIN =1<<Key_Num; //按键按下(错误代码)TouchIN |=1<<Key_Num; //按键按下}void TouchIN_Dect() //触摸输入检测{Key_Measure_Freq(); //测频Key_FIFO(); //软件FIFO缓存最近4次测量数据Key_Judge(); //仲裁按键是否按下或松开}TouchIN.h:/***** TouchIN.h******/#ifndef TOUCHIN_H_#define TOUCHIN_H_extern void TouchIN_Dect() ; //WDT中断事件extern unsigned char TouchIN; // 相当于PxIN寄存器作用,支持8个触摸按键#endif /* TOUCHIN_H_ */main.c:#include "MSP430G2553.h"#include "TouchIN.h" /*触摸按键检测库函数*/void WDT_Ontime(void);//-----对硬件相关代码进行宏定义处理-----#define LED_ON P1OUT |= BIT0 /*宏定义LED所在IO*/#define LED_OFF P1OUT &= ~BIT0 /*宏定义LED所在IO*/void main(void) {WDTCTL = WDTPW+WDTHOLD; //关狗//-----初始化GPIO-----P1DIR |= BIT0; //LED所连IO口P1.0设为输出P1OUT &= ~BIT0;//-----初始化WDT定时中断为16ms-----WDTCTL = WDT_ADLY_16; // “超级”宏定义IE1 |= WDTIE; //使能WDT中断_EINT(); // 使能总中断__bis_SR_register(LPM3_bits); //等同LPM3}#pragma vector=WDT_VECTOR // Watch dog Timer interrupt service routine__interrupt void WDT_ISR(void){WDT_Ontime();}void WDT_Ontime(void){ //-----首先必须定时扫描触摸按键检测函数-----TouchIN_Dect();if(TouchIN & BIT0) LED_ON;if(TouchIN & BIT1) LED_OFF;}调试情况:第一次调试:TouchIN_Dect函数重复定义第二次调试:正常调试结果:按下P2.0 后LED 亮,按下P2.5 后LED 灭,任务达成。
触摸按键原理及设计要点
機構設計重點
C 由于感應電極與面板接觸點之間無法有 空隙,所以機構設計上必須考慮將感應驗 路板直接黏貼在外殻面板的内側, 以及考 慮面板的組裝方式。
機構設計重點
D 同様的, 感應電極與手指之間無法有金 屬層夾在中間, 所以面板上不可以有金屬 電鍍及含金屬超過15% 的噴漆等會形成導 電層的設計。 E 如果必須電鍍或高 金屬含量漆,請在按 鍵區域的邊緣保留一 圈不要電鍍或噴漆, 用以隔絶其他感應開 關。
PCB LAYOUT的重點
◆ 電源: 對感應IC 進行獨立電源供應, 其電 源系統和其他的部分的電源供應系統進行隔離。 ◆ 使用不同的IC , LAYOUT 時還有一些各自特 殊的要求。
機構設計重點
A 面板的材質必須是塑料,玻璃,等非導 電物質。 B 在機構設計階段同時也必需設計作業流 程, 以選取合適的産品, 如果是按鍵的 産品,考慮是否有複合按鍵的設計,或綜 合滑動作業及按鍵作業等, 如果是滑動作 業的産品,就必須考慮是否需要切割出按 鍵。
機構設計重點
H 如果感應電路板後面有大片金屬或電路板,必 須保留若乾空隙, 以避免靈敏度降低或干擾感應 電極,是金屬板,金屬板必須接地, 空隙保留至 少0.3mm 以上, 如果是電路板,儘量减少高頻電 路經過,并保留至少1.0mm 的空隙。 I 有上述狀况的感應電路板,雖然保留了足够的 間距, 如果可將感應電極加大, 以利後續調整 靈敏度的步驟。
PCB LAYOUT的重點
◆ 感應PAD : 如果是單面板,感應電極的附近不 要有高頻綫路,也不要有鋪地綫,或是銅面較寬 的綫路,鄰近的感應電極請間隔1mm以上。如果選 用的IC 具有AKS 功能請儘量用此功能以减少鄰近 的感應電極相互干擾,如果選用的IC 没有AKS 功 能,在感應電極之間加一條( 0.254mm )地綫也 可以减少鄰近感應電極的干擾。如果需要减少來 自感應電極下方的感應或是干擾源的干擾而需用 鋪地綫隔離,請用網格狀鋪銅,網格1.27mm以上 格綫用0.254mm以下的寬度。
触摸式感应按键的设计原理及指南
触摸式感应按键的设计原理及指南
一、触摸式感应按键的设计原理
触摸式感应按键(Touch Sensitive Buttons)是一种控制开关,通
常用于电子设备中,它是在按压按键时会产生电子信号,从而控制电子设
备的功能或者更改其设置参数。
这种按键的原理非常简单,通常由两个金
属层组成,其中一层为电极,用于获取输入信号并将其转换为电流信号,
另一层为另一个电极,用于将电流信号转换为电压信号,从而达到控制功
能的目的。
当触摸按钮被按下时,两个电极之间会形成一个完整的电路,
从而使电路发生电动势,从而产生电子信号。
二、触摸式感应按键的指南
1、在触摸式感应按键的设计中,应该考虑到按键的体积和尺寸,以
便在电子设备中更容易操作。
2、触摸感知开关的尺寸设计应尽量紧凑,以便尽可能的节省电子元
件的空间,以节约空间,同时也提高电路的密度。
3、触摸式感应按键的设计要考虑材料选择问题,材料应选择抗静电、耐高温的高品质材料,这样才能确保触摸按键能够在高温下长期运行。
4、在触摸式感应按键的设计中,还应考虑触点的位置,防止触点太
近或太远,这样可以避免按键感应失效的情况,有利于确保触摸按键的正
常操作。
触摸感应按键设计指南
触摸感应按键设计指南触摸感应按键设计一、触摸按键的原理两块导体(极板)中间夹着一块绝缘体(介质)就能构成的电容。
对触摸感应按键而言,PCB 板上的金属感应盘就是电容的一个极板,而周围铺铜或手指构成了另一个极板,PCB材料本身或者PCB板上覆盖的介质就是电容中间的绝缘体,因而构成一个电容器。
平板电容器的容值计算公式为:其中:C:PCB板最终生成电容ε0:空气中的介电常数εr:两极板间介质的相对介电常数A:两极板面积d:两极板距离无手指触摸和有手指触摸时电容构成如下图。
当没有手指接触时,只有基准电容Cp;当有手指接触时,“按键”通过手指就形成了电容Cf。
由于两个电容是并联的,所以手指接触“按键”前后,总电容的变化率为:C%=((Cp+Cf)-Cp)/Cp=Cf/Cp无手指触摸示意图有手指触摸示意图这个电容的变化引起芯片内部振荡频率或充放电时间的变化,使芯片内部能够检测到触摸发生,从而产生触发信号。
电容的变化率越大,触摸就越易检测到。
PCB的设计原则同样也是使触摸前后的电容变化率尽可能大:即减小PCB的基准电容,增大手指电容。
所以PCB 设计对触摸效果有很大的影响,甚至决定整个触摸产品的开发。
二、PCB设计考虑1、PCB设计关键点a、触摸模块单独做成一块PCB板(强烈建议)b、抑制干扰c、减小触摸PCB的基准电容2、减小PCB的基准电容:上面提到的平板电容器的容值计算公式为:为使基准电容量尽可能小,主要控制极板面积和极板距离。
极板面积主要体现在触摸盘的大小、铺地的比例、感应走线的长度、宽度上,极板距离主要体现在触摸盘、感应走线与铺地的间距上。
3、触摸按键的形式、间距和铺地考虑a、触摸按键形状触摸按键可以是任何形状,但尽量集中在正方形、长方形、圆形等比较规则的形状以确保良好的触摸效果,避免将触摸按键设计成窄长的形状(规则的形状的触摸效果要比不规则的好得多)。
b、单个触摸按键顶层(TOP)铺地形式:可以铺实地或网格地,如图。
stm8引脚能否做成触摸输入
stm8 引脚能否做成触摸输入
我曾开发带有触摸按键功能的消费类电子产品,在起初也是不知道STM8 引脚可以实现触摸这个功能,所以这里写给大家。
1
写在前面
我们开发带有触摸功能的产品时,可能首先考虑的就是购买一个触摸芯片。
但是对于消费类电子,如果你的产量较大,可能就会考虑这1,2 块的触摸芯片的成本。
此时,使用STM8,或者STM32 作为主控的IC 可以实现触摸功能就显得比较重要了。
由于很多人不知道这个功能,这里先让大家了解并熟悉这一项触摸按键功能。
2。
STM8单片机按键检测电路设计
STM8单片机按键检测电路设计
硬件环境采用STM8SF103,电压为3.3V。
电路需要注意的是STM8SF103这系列的IO作为输入口时只能是上拉输入和悬浮输入,虽然是弱上拉,在VCC为3.3V电压时,仍然能够被拉升至3.0V左右。
所以按键检测电路IO口一端需要接地,而不是外接上拉。
悬浮方式下IO仍然会有0.89V 左右电压,读取对应的IO寄存器IDR,仍然处于逻辑高电平状态。
软件代码相对很简单,只需要将IO口设置成上拉输入即可。
采用轮询代码如下:
//初始化只需要设置IO口模式即可。
GPIO_Init(KEY2_PORT,KEY2_PIN,GPIO_MODE_IN_PU_NO_IT);//上拉输入,不产生中断
//按键检测部分
/*
#defineKEY10
#defineKEY1_PORT(GPIOD)
#defineKEY1_PIN(GPIO_PIN_4)
#defineKEY21
#defineKEY2_PORT(GPIOC)
#defineKEY2_PIN(GPIO_PIN_1)
*/
u8CheckKey(u8key)
{
if(key==KEY1)
{
if(KEY1_PORT-》IDR">{
delay_5ms();
if(KEY1_PORT-》IDR">{。
STM8S学习笔记
main() {
unsigned char i; TIM_Init();
// 初始化定时器
while(1)
// 进入无限循环
{ // 下面的循环将占空比逐渐从 0 递增到 50%
// b1 = 0,允许更新
// 设置控制器,启动定时器
TIM2_IER = 0x01;
// 允许更新中断
_asm("rim");
// 允许 CPU 全局中断
while(1)
// 进入无限循环
{
}
}
// 函数功能:定时器 4 的更新中断服务程序 // 输入参数:无 // 输出参数:无
// 返 回 值:无
PD_CR1 = 0x08; PD_CR2 = 0x00;
// 将 PD3 设置成推挽输出
// 然后初始化定时器 4
TIM4_IER = 0x00;
// 禁止中断
TIM4_EGR = 0x01;
// 允许产生更新事件
TIM4_PSCR = 0x07;
// 计数器时钟=主时钟/128=2MHZ/128
TIM2_CCER1 = TIM2_CCER1 | 0x30; // CC polarity low,enable PWM output */ // CC2P = 1,低电平为有效电平 // CC2E = 1,开启输出引脚
//初始化自动装载寄存器,决定 PWM 方波的频率, //Fpwm=4000000/256=15625HZ TIM2_ARRH = 0; TIM2_ARRL = 0xFF; //初始化比较寄存器,决定 PWM 方波的占空比 TIM2_CCR2H = 0; TIM2_CCR2L = 0; // 初始化时钟分频器为 1,即计数器的时钟频率为 Fmaster=4MHZ TIM2_PSCR = 0; // 启动计数 TIM2_CR1 = TIM2_CR1 | 0x01; }
第01讲STM8单片机应用
举一反三课堂笔记STM8剑齿虎开发板课件文档官方网站:官方店铺:关注微信公众平台微信号:"zxkj-ly",免费获取STM8资料。
STM8技术交流QQ群【335123291】第1讲单片机应用简介目录1.1概述 (3)1.2单片机能做什么 (3)1.3学习单片机应有的知识储备 (5)1.4如何学习STM8单片机 (6)1.5C语言发展过程 (8)1.1概述单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术。
把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
从上世纪80年代由当时的4位、8位单片机,发展到现在的32位、64位单片机。
1.2单片机能做什么单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1智能仪器单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
基于STM8的触摸按键方案
基于STM8的电容感应式触摸按键方案在电磁炉中的应用1、引言相较于机械式按键和电阻式触摸按键,电容式触摸按键不仅耐用,造价低廉,结构简单易于安装,防水防污,而且还能提供如滚轮、滑动条的功能。
但是电容式触摸按键也存在很多的问题,因为没有机械构造,所有的检测都是电量的微小变化,所以对各种干扰敏感得多。
ST针对家电应用特别是电磁炉应用,推出了一个基于STM8系列8位通用微控制器平台的电容式触摸感应方案,无需增加专用触摸芯片,仅用简单的外围电路即可实现电容式触摸感应功能,方便客户二次开发。
2、方案介绍ST的电容式触摸按键方案通过一个电阻和感应电极的电容CX构成的阻容网络的充电/放电时间来检测人体触摸所带来的电容变化。
如图1所示,当人手按下时相当于感应电极上并联了一个电容CT,增加了感应电极上的电容,感应电极进行充放电的时间会增加,从而检测到按键的状态。
而感应电极可以直接在PCB板上绘制成按键、滚轮或滑动条的应用样式,也可以做成弹簧件插在PCB板上,即使隔着绝缘层(玻璃、树脂)也不会对其检测性能有所影响。
图1 STM8S电容式触摸按键的工作原理电磁炉是采用磁场感应电流的加热原理对食物进行加热。
加热时,通过面板下方的线圈产生强磁场,磁力线穿过导磁体做的锅的底部时,锅具切割交变磁力线而在锅具底部产生涡流使锅底迅速发热,达到加热食物的目的。
在本解决方案中采用44pin的STM8S105S4做按键显示板的主控芯片,控制13个按键的扫描、24个LED及一个4位数码管的显示、I2C与主板的通讯,并留有一个SWIM接口方便工程师调试之用(如图2)。
图2 电磁炉按键板原理STM8S105S4采用的是ST高级STM8内核,具备3级流水线的哈佛结构,3.0~5.5V工作电压,内部16MHz RC 可提供MCU 16MHz工作频率,提供低功耗模式和外设时钟关闭功能,共有34个I/O可用。
STM8S105S4 具有2KB 的RAM和16KB的FLASH,还有可达30万次擦写次数的1KB EEPROM数据存储器。
ST AN2658 应用笔记
AN2658应用笔记如何使用STM8S微控制器中的模数转换器导言该应用笔记的目的在于说明如何使用STM8S微控制器的模数转换器。
它说明了如何配置ADC寄存器和微控制器资源,以及如何使用ADC的不同工作模式。
该应用笔记描述了固件函数库中的例程(包含源代码),固件函数库可从ST的网站下载:。
本文的英文原文下载地址:/stonline/products/literature/anp/14152.pdf目录AN2658 目录1ADC的硬件描述 (3)1.1通用特性 (3)1.2ADC操作模式 (4)2特性总结 (5)2.1分辨率 (5)2.2时钟选择 (5)2.3转换触发 (5)2.4ADC速度/采样时间 (5)2.5参考电压 (5)2.6输入模拟通道的选择 (5)2.7数据存储 (6)3配置ADC寄存器 (7)3.1选择操作模式 (7)3.1.1单次转换模式 (7)3.1.2连续转换模式 (7)3.1.3外部触发转换 (7)3.2转换速度的选择 (7)3.3模拟输入的选择 (7)3.4转换结果的存放 (7)3.5ADC中断管理 (8)4实际应用 (9)4.1应用领域 (9)4.2硬件连接示例 (9)4.3提高精度的方法 (11)5设计建议 (12)6使用LED显示ADC的转换结果 (13)6.1概述 (13)6.2硬件描述 (13)6.3固件描述 (13)7定时器TIM1的ADC转换触发 (14)7.1概述 (14)7.2硬件描述 (14)7.3固件描述 (14)8版本回顾 (15)1 ADC的硬件描述1.1 通用特性STM8系列微控制器包含一个最多16通道的模数转换器。
模数转换器的分辨率为10位。
外部模拟输入的通道数取决于所选的STM8产品的封装。
ADC是一个逐次逼近的模数转换器。
支持单次或连续转换模式。
转换结果存放在寄存器中。
由于ADC的分辨率为10位,而ADC的数据寄存器是8位的,因此ADC的转换结果被存放在两个8位寄存器中,数据可向左或向右对齐(可选)。
触摸屏和触摸按键设计
触摸按键与触摸屏设计指导徐国斌2007-11-05homerx@/mobilemd目录:1. 概述2. 触摸按键设计指导 3. 触摸屏设计指导4. Lens Touch Panel 设计指导 5. 电容式Lens Touch Panel6.附录:Psoc 触摸按键问答无维网免费资料 WW W .5D C A D .C N1. 概述对触摸屏与触摸按键在手机中的设计与应用进行介绍,对设计的经验数据进行总结。
达到设计资料和经验的共享,避免低级错误的重复发生。
2. 触摸按键设计指导 2.1 触摸按键的功能与原理2.1.1触摸按键的功能触摸按键起keypad 的作用。
与keypad 不同的是,keypad 通过开关或metaldome 的通断发挥作用,触摸按键通过检测电容的变化,经过触摸按键集成芯片处理后,输出开关的通断信号。
2.1.2触摸按键的原理如下图,是触摸按键的工作原理。
在任何两个导电的物体之间都存在电容,电容的大小与介质的导电性质、极板的大小与导电性质、极板周围是否存在导电物质等有关。
PCB 板(或者FPC )之间两块露铜区域就是电容的两个极板,等于一个电容器。
当人体的手指接近PCB 时,由于人体的导电性,会改变电容的大小。
触摸按键芯片检测到电容值大幅升高后,输出开关信号。
在触摸按键PCB 上,存在电容极板、地、走线、隔离区等,组成触摸按键的电容环境,如下图所示。
FingerTime Capacitance C无维网免费资料 WW W .5D C A D .C N2.1.3 触摸按键的按键形式触摸按键可以组成以下几种按键 z 单个按键z 条状按键(包括环状按键) z 块状按键单个按键条状按键 块状按键2.1.4触摸按键的电气原理图如下:无维网免费资料 WW W .5D C A D .C N在PCB 板上的露铜区域组成电容器,即触摸按键传感器。
传感器的信号输入芯片,芯片经过检测并计算后,输出开关信号并控制灯照亮与否。
STM8 Nucleo-64 板终端控制应用说明书
AN5179应用笔记使用STM8 Nucleo-64板与终端进行RS232通信引言本应用笔记说明了如何从运行于PC上的终端窗口控制STM8 Nucleo-64板。
PC要通过RS232线连到STM8S208RBT6(对于NUCLEO-8S208RB)或STM8L152R8T6(对于NUCLEO-8L152R8)板的UART。
当为开发板添加了所需的元器件并下载应用软件后,用户将能够使用终端来管理STM8S系列或STM8L系列GPIO和TIM3定时器,以及配置蜂鸣器输出。
表 1. 适用产品参考文档•STM8 Nucleo-64板数据概述(DB3591)•STM8L152R8T6 Nucleo-64板用户手册(UM2351)•STM8S208RBT6 Nucleo-64板用户手册(UM2364)先决条件1先决条件运行STM8 Nucleo-64板终端演示应用所需的材料如下:•运行于PC上的终端窗口:终端模拟器软件可以是Windows HyperTerminal(请参见第附录 B 节附件B)、TeraTerm Pro或任何终端软件。
•RS232零调制解调器线(收发线交叉连接)。
配置 NUCLEO-8S208RB板2配置 NUCLEO-8S208RB板运行应用之前,必须配置NUCLEO-8S208RB板(基于STM8S208RBT6器件构建)以启用蜂鸣器输出。
蜂鸣器输出为STM8S208RBT6复用功能。
通过将OPT2选项字节中的复用功能重映射选项位AFR7设为‘1’来启用。
提示NUCLEO-8L152R8板(基于STM8L152R8T6器件构建)不需要用户检查或激活该复用功能或蜂鸣器。
3应用描述3.1硬件要求本应用使用STM8 Nucleo-64板的板上LED(LD2)及相关电阻(R1)。
应用所需的外部无源元件列表如下。
表 2. 无源元件列表该应用还使用一个5 V供电的ST232B RS232驱动器/接收器(请参见下表以获取更详细信息)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
November 2013DocID17613 Rev 21/15AN3236Application noteGuidelines to increase the number of touch sensing touchkeys IntroductionThe touch sensing libraries allow management of the following number of channels depending on the targeted device series :∙up to 24 channels when using devices from the STM32F0 and STM32F3 series.∙up to 34 channels when using devices from the STM32L1 series.∙up to 6 channels when using devices from the STM8L101 lines.∙up to 20 channels when using devices from the STM8L151/152 and the STM8L162 lines.∙up to 24 channels when using devices from the STM8S and STM8AF series.The guidelines detailed into this document aim to help designers to overcome channel number limitation. They describe tips and tricks to increase the number of touchkeys and/or to create a touchkey matrix by keeping the same targetted device.Table 1. Applicable productsTypeApplicable products Microcontrollers STM32F0 series, STM32F3 series, STM32L1 series, STM8L101 lines,STM8L151/152 lines, STM8L162 lines, STM8S series, STM8AF series.Contents AN3236Contents1Adding an extra touchkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1Basic hardware implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2Software implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2Combined implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Touchkey matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.1Matrix hardware implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2Software implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.3Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4Maximizing the number of touchkeys . . . . . . . . . . . . . . . . . . . . . . . . . . 125Working around the limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.1Touchkeys set definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.2Detection exclusion system (DxS) usage . . . . . . . . . . . . . . . . . . . . . . . . . 13 6Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142/15DocID17613 Rev 2AN3236List of tables List of tablesTable 1.Applicable products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Table 2.Decoding example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Table 3.Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14DocID17613 Rev 23/15List of figures AN3236 List of figuresFigure 1.Basic hardware implementation example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Figure bined implementation example for multi-touch capability . . . . . . . . . . . . . . . . . . . . . . . 7 Figure 3.Example of an implementation for six touchkeys with only three channels . . . . . . . . . . . . . 8 Figure 4.Matrix hardware implementation example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Figure 5.Decodable multi-touch example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Figure 6.Ghost effect example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Figure 7.Touchkey matrix with a single electrode on each channel. . . . . . . . . . . . . . . . . . . . . . . . . 12 4/15DocID17613 Rev 2AN3236Adding an extra touchkey 1 Adding an extra touchkeyThis section explains how to add an extra touchkey to a pair of single electrodes for anapplication.1.1 Basic hardware implementationAs shown in Figure 1: Basic hardware implementation example, a standard touchkey ismade of a single ended electrode. Two single electrodes can generate a third touchkey byinterlacing teeth coming from each electrode.DocID17613 Rev 25/15Adding an extra touchkey AN32366/15DocID17613 Rev 21.2 Software implementationThe touch sensing library manages the channels acquisition as if there are only two singleelectrodes. The application must thus decode the result of the acquisition as shown inTable 2: Decoding example .1.3 LimitationThe drawback of this hardware and software implementation is that there is no way todiscriminate a touch on both touchkey 1 and touchkey 2 from a single touch on touchkey 3as implemented in Figure 1. So, this solution suits applications where only one touchkeycan be detected at once or, if a few touchkeys are valid at the same time, where thetouchkeys do not share an electrode.Table 2. Decoding exampleTouchkeysChannel 1 state Channel 2 state No touchIdle Idle Touchkey 1 touchedDetect Idle Touchkey 2 touchedIdle Detect Touchkey 3 touched Detect DetectAN3236Combined implementationimplementation2 CombinedCombined implementation (see Figure 2) allows any touchkey from set 1, 2 or 3 to betouched simultaneously but, if two touchkeys from within the same set are touchedconcurrently, an incorrect touchkey is detected. For instance, touchkeys 1, 6 and 8 can betouched by the user at the same time and the application decodes them correctly but, iftouchkeys 2 and 3 are touched simultaneously only touchkey 3 is reported. Likewise, iftouchkeys 4 and 5 are touched concurrently, touchkey 6 is incorrectly reported.1. A set consists of three touchkeys acquired through two channels.DocID17613 Rev 27/15Combined implementation AN3236A channel can be connected to several double-ended electrodes which allows the numberof:∙touchkeys to be doubled (very suitable for products with few channels)∙GPIOs used for the touch sensing acquisition to be reduced.Figure 3 gives an example of an implementation where six touchkeys are generated withonly three channels.8/15DocID17613 Rev 2AN3236Touchkey matrixmatrix3 TouchkeyIn some applications, adding one touchkey by electrode pairs is not enough and building anelectrode network to get a touchkey matrix is more efficient.implementation3.1 MatrixhardwareThe double-ended electrode solution can be extended to create an electrode network asshown in Figure 4: Matrix hardware implementation exampleIn this implementation example, seven channels provide a touchkey matrix of12 touchkeys.Each touchkey is generated by interlacing a channel row with a channel column. Forexample, touchkey 1 is generated by interlacing Ch1 with Ch4. It is recommended to havehomogenous sized touchkeys so that each touchkey has the same sensitivity. Thissimplifies the threshold setup and acquisition can be achieved using the same samplingcapacitor value.DocID17613 Rev 29/15Touchkey matrix AN323610/15DocID17613 Rev 23.2 Software implementationChannel acquisition is managed by the touch sensing firmware library in the same way asfor single electrodes. A decoding step must be also performed at application leveldepending on the combination of detected channels.A touch on touchkey 1 triggers a detection on two channels, Ch1 and Ch4 (see Figure 4:Matrix hardware implementation example ).The decoding table mirrors the matrix shown in Figure 4. A touchkey is activated when thetwo channels it is connected to are in detection state.3.3 LimitationFor such a touchkey matrix, one or several touchkeys can be touched simultaneously on thesame row or the same column. As shown in Figure 5, touchkey 1, 4, 7, and 10 are touchedsimultaneously and can be decoded without ambiguity.AN3236Touchkey matrix However, when two touchkeys are touched on different rows or columns, four channels aredetected and it is difficult to discriminate a true touch from a false one. This phenomenon isknown as the “ghost” effect.In Figure 6, touchkey 1 and touchkey 5 are touched but, channels 1, 2, 4 and 5 aredetected. From the application, it is impossible to determine which of the four touchkeys aretouched.DocID17613 Rev 211/15Maximizing the number of touchkeys AN3236 4 Maximizing the number of touchkeysThe user can combine the touchkey matrix with single electrode touchkeys to maximize thenumber of possible touchkeys. This gives a pure single touch interface.In this configuration, single electrodes are added on each row and column of the touchkeymatrix as shown in Figure 7. There are two decoding cases:∙if one channel is detected, the connected single electrode touchkey is touched∙if two channels are detected, the touchkey corresponding to the intersection of the two channels is touched.In the case of multi-touches, it is impossible to discriminate which touchkeys are touched.This solution is only adapted for applications where the user touches one key at a time.12/15DocID17613 Rev 2AN3236Working around the limitations 5 Working around the limitationsThe limitations can be reduced through careful management of the touchkeys and touchkeymatrices.definitionset5.1 TouchkeysFor extra touchkeys and touchkey matrices, it is important to define sets of touchkeys inwhich the touchkeys cannot be touched at the same time. This allows multi-touchingcapability across sets.Sets can be catagorized as follows:∙ a touchkey matrix and a few independent touchkeys which allow simultaneous touches on any of the independent touchkeys plus one touch on the touchkey matrix.∙two touchkey matrices which allow simultaneous touches on each touchkey matrix.exclusion system (DxS) usage5.2 DetectionFor a touchkey matrix (without single electrode touchkeys), DxS allows only the firstdetected touch inside a group to be reported. By defining a DxS group with channel rowsand another group with channel columns, only one touchkey can be activated at a time. Forapplication managing only single touch, this simplifies the processing at application level. 6 ConclusionThe described guidelines allow the touchkey capabilities of STMicroelectronicsmicrocontrollers to be improved without modifying the touch sensing firmware library. Inapplication software, the processing must provide a simple decoding step to determinewhich touchkey is touched when a pair of channels is activated.DocID17613 Rev 213/15Revision history AN323614/15DocID17613 Rev 27 Revision historyTable 3. Document revision historyDateRevision Changes 18-Jun-20101Initial release.18-Nov-20132Added support for STM32F0, STM32F3, STM32L1, STM8AF seriesand STM8L162 lines.Updated Section 1: Adding an extra touchkey .Updated Section 3: Touchkey matrix .Updated Section 4: Maximizing the number of touchkeys .Updated Section 5: Working around the limitations .Removed paragraph “Maximum touchkey matrix size by product”.Updated Section 6: Conclusion .AN3236Please Read Carefully:Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any time, without notice.All ST products are sold pursuant to ST’s terms and conditions of sale.Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no liability whatsoever relating to the choice, selection or use of the ST products and services described herein.No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such third party products or services or any intellectual property contained therein.UNLESS OTHERWISE SET FORTH IN ST’S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.ST PRODUCTS ARE NOT DESIGNED OR AUTHORIZED FOR USE IN: (A) SAFETY CRITICAL APPLICATIONS SUCH AS LIFE SUPPORTING, ACTIVE IMPLANTED DEVICES OR SYSTEMS WITH PRODUCT FUNCTIONAL SAFETY REQUIREMENTS; (B) AERONAUTIC APPLICATIONS; (C) AUTOMOTIVE APPLICATIONS OR ENVIRONMENTS, AND/OR (D) AEROSPACE APPLICATIONS OR ENVIRONMENTS. WHERE ST PRODUCTS ARE NOT DESIGNED FOR SUCH USE, THE PURCHASER SHALL USE PRODUCTS AT PURCHASER’S SOLE RISK, EVEN IF ST HAS BEEN INFORMED IN WRITING OF SUCH USAGE, UNLESS A PRODUCT IS EXPRESSLY DESIGNATED BY ST AS BEING INTENDED FOR “AUTOMOTIVE, AUTOMOTIVE SAFETY OR MEDICAL” INDUSTRY DOMAINS ACCORDING TO ST PRODUCT DESIGN SPECIFICATIONS. PRODUCTS FORMALLY ESCC, QML OR JAN QUALIFIED ARE DEEMED SUITABLE FOR USE IN AEROSPACE BY THE CORRESPONDING GOVERNMENTAL AGENCY.Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any liability of ST.ST and the ST logo are trademarks or registered trademarks of ST in various countries.Information in this document supersedes and replaces all information previously supplied.The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners.© 2013 STMicroelectronics - All rights reservedSTMicroelectronics group of companiesAustralia - Belgium - Brazil - Canada - China - Czech Republic - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan - Malaysia - Malta - Morocco - Philippines - Singapore - Spain - Sweden - Switzerland - United Kingdom - United States of AmericaDocID17613 Rev 215/15。