电容式触摸按键布线.docx

上传人:b****3 文档编号:4796627 上传时间:2023-05-07 格式:DOCX 页数:11 大小:389.93KB
下载 相关 举报
电容式触摸按键布线.docx_第1页
第1页 / 共11页
电容式触摸按键布线.docx_第2页
第2页 / 共11页
电容式触摸按键布线.docx_第3页
第3页 / 共11页
电容式触摸按键布线.docx_第4页
第4页 / 共11页
电容式触摸按键布线.docx_第5页
第5页 / 共11页
电容式触摸按键布线.docx_第6页
第6页 / 共11页
电容式触摸按键布线.docx_第7页
第7页 / 共11页
电容式触摸按键布线.docx_第8页
第8页 / 共11页
电容式触摸按键布线.docx_第9页
第9页 / 共11页
电容式触摸按键布线.docx_第10页
第10页 / 共11页
电容式触摸按键布线.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电容式触摸按键布线.docx

《电容式触摸按键布线.docx》由会员分享,可在线阅读,更多相关《电容式触摸按键布线.docx(11页珍藏版)》请在冰点文库上搜索。

电容式触摸按键布线.docx

电容式触摸按键布线

电容式触摸按键布线分享

1):

电容式触摸按键特点及应用

与传统的机械按键相比,电容式触摸感应按键不仅美观时尚而且寿命长,功耗小,成本低,体积小,持久耐用。

它颠覆了传统意义上的机械按键控制,只要轻轻触碰,他就可以实现对按键的开关控制,量化调节甚至方向控制,现在电容式触摸感应按键已经广泛用于手机,DVD,电视,洗衣机等一系列消费类电子产品中!

2):

电容式触摸按工作基本原理

所谓感应式触摸按键,并不是要多大的力量去按,相反,力量大和小的效果是一样的,因为外层一般是一块硬邦邦的塑料壳。

具体就电容式而言,是利用人手接触改变电容大小来实现的,通俗点,你手触摸到哪个位置,那里的电容就会发生变化,检测电路就会检测到,并将由于电容改变而带来的模拟信号的改变转化为数字信号的变化,进行处理!

3):

电容式触摸按电容构成及判断

PCB材料构成基本电容,PCB上大面积的焊盘(触摸按键)与附近的地构成的分布电容,由于人体电容的存在,当手指按上按键后,改变了分布电容的容量(原来的电容并上了人体电容),通过对PAD构成的分布电容充放电或构成振荡电路,再检测充放电的时间,或者振荡频率,脉冲宽度等方式可以检测电容容量的变化,继而可判断按键是否被按下。

电容式触摸按键布板要求

1):

PCB板的电容构成因素:

PCB板中电容构成因素如右图:

其中 

 代表PCB板最终生成电容

    

代表空气中的介质常数

    

代表两板电介质常数                      

 

代表两极板面面积                                  

 代表两板距离

2):

PCB板的布局

电容式感应触摸按键实际只是PCB上的一小块覆铜焊盘,当没有手指触摸时,焊盘和低型号产生约5—10PF的电容值,我们称之为“基准电容”故为了PCB设计尽量达到这值,PCB需要进行更好设计!

如下图:

 

虽然触摸按键最终的效果可能与其他一些因素还有很多直接或间接的关系,但做为PCB的绘制人员,我们因该尽量保证我们所绘制的PCB效果达到最佳(及控制好触摸按键的中的基准电容值)PCB布板至关重要,因为PCB构成的电容容量极小,而且必须要尽量控制等效电容,不能过大,因为人体电容也是极小的(数pF),不同的人之间差异也比较大,而触摸按键的灵敏度就在于手指接触按键前后PAD电容量的差异,而且这么小的电容充放电极易受到干扰,所以布线的关键两点就是:

1、 控制电容量

2、 避免干扰

影响电容容量的因素是极板的面积和极板间的介质材料,在实际应用中人体是不太可能直接接触PCB的,所以PCB与按键接触面必须有覆盖层,在触摸按键应中影响容量的因素有:

1、 PAD的面积与铺地间的距离以及铺地的面积

2、 PAD上的覆盖层的厚度和材质(介质)

3、 PCB的厚度和材质

对应的策略如下:

1、 PAD的面积应尽量接近手指接触按键的有效面积。

2、 与铺地间的距离以0.5mm为佳,与PAD同一层铺实心地,并保持PAD周围的完整,虽然增大了PAD的固有电容,但同时也增加了人体感应电容,灵敏度有提高,PAD另一侧的铺地应越小越好,为了与抗干扰折衷,一般采用50%的网络铺地(不是线宽与铺铜网格之间,而是铺铜面积与网格之间)。

3、 覆盖层的厚度应越小越好,覆盖层应填充满PAD面与按键之间,不能留有隙,

可使用3M胶等胶粘剂,应选择介电常数2-8的材料.

3、根据PCB的材质和厚度调整布线策略,如板厚度缩小,应减小PAD另一 侧铺地的面积。

  

 

 

 为了提升抗干扰能力,需要在PAD,PAD引线上极其注意,对应策略如下:

1、 PAD、PAD引线都应远离大电流、高频率信号线等一些干扰较大的信号线、PAD正下方尽量不要走信号线,PAD引线之间距离越大越好,尽量避免互相干扰!

2、 为了避免额外增加PAD电容,PAD引线应尽量缩短、缩小,一般采用0.16mm,与铺地之间也应保持较大距离,与其它信号线也要保持较大距离,避免与其它信号线平行。

 

3、 网络铺地也要采用最小线宽。

 =============================== Power/RESET =========================

1、STM8S为双电源MCU,外设工作电压为3V~5.5V,内核工作电压为1.8V。

因MCU内部已集成1.8V 低功耗电压(LPVR)调节器,MCU工作仅需提供一个供电电源。

在电源电路设计时,需要注意芯片VCAP引脚上要提供滤波电容,该电容用于对内部1.8V供电滤波,容值不小于470nF为宜,瓷片和Ta电容均可,尽量选择较低ESR(等效串联电阻值)的型号。

2、MCU芯片自带上电复位(POR)与掉电复位(BOR),工作时供电需注意POR、BOR工作范围。

1)、POR - Power-On Reset 上电复位 

    POR的功能是在VDD电压由低向高上升越过规定的阀值(VIT+)之前,保持芯片复位,当越过这个阀值(VIT+)后的一小段时间后(Reset temporization),结束复位开始取复位向量执行指令。

 

2)、BOR - Brown-Out Reset 掉电复位

    BOR的功能是在VDD电压由高向低下降越过规定的阀值(VIT-)后,将在芯片内部产生复位。

3、芯片复位地址指向0x6000(内部Bootloader存放首地址),在检查无Boot操作,PC指向0x8080地址。

0x8000~0x807F为中断向量占用。

==================================================================

==================================================================

                            按使用开发环境 

====================================================================== 

==============================   STVD    ============================= 

1、STVD如何输出hex文件

   菜单栏 Project -> Setting 打开“Post_Build”标签,命令框原默认定义:

   chex -o $(OutputPath)$(TargetSName).s19 $(OutputPath)$(TargetSName).sm8

   输出S19格式的目标文件。

   在其中增加或修改为:

   chex -fi -o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8 

   即可输出hex格式目标文件。

   生成hex文件被输出到目录 项目“\Debug”目录下。

   如图:

   

 (原文件名:

hex.png) 

引用图片

==============================   RIDE    ============================= 

==================================================================

==================================================================

                               按编译器 

====================================================================== 

============================== STM8  ASM =============================

==============================   COSMIC  ============================= 

1、

  @tiny  - Zero Page(0x00~0xFF)  申明  :

@tiny char a

    a) .bsct -  在zero page区域的初始化变量

    b) .ubsct- 在zero page里面的未初始化变量

    c) .bit       -  位操作段

    d) .share

  @near   -   Zero page 以外的RAM区域

    a) .bss  -  未初始化变量区域;

    b) .data  -  已初始化变量区域;

    c) .const  -  常量区域

  @far

   .fdata (large variable)

   .fconst  

   .text

  @EEPROM

2、

  Placing Data Objects in Short Range Memory

     @tiny char c;

     #pragma space extern [] @tiny

  Placing Data Objects in Long Range Memory 

     @near char ext;

     #pragma space extern [] @near

  Placing Data Objects in the EEPROM Space

     @eeprom char var;

     #pragma space extern [] @eeprom @near

Note:

The @near modifier is necessary because the eeprom is located outside the zero page.

3、

  Memory Models for code smaller than 64K

    Stack Short (mods0) - Global variables are defaulted to short range

    Any global object in long range will have to be accessed explicitly with the @near modifier unless accessed through a pointer.

    Stack Long (modsl0) - Global variables are defaulted to long range

    Any object in short range will have to be accessed explicitly with the @tiny modifier.

  Memory Models for code larger than 64K

    Stack Short (mods) - Global variables are defaulted to short range

    Any global object in long range will have to be accessed explicitly with the @near modifier unless accessed through a pointer.

    Stack Long (modsl) - Global variables are also defaulted to long range 

    Any object in short range will have to be accessed explicitly with the @tiny modifier

4、变量地址的绝对定位:

    char acia @0x20;

    #define acia *(char *)0x20

    struct acia

    {

      char status;

      char data;

     } acia @0x6000

Note :

that COSMIC C does support the pointer and #define methods of implementing I/O access.

5、内嵌汇编

   1)、#pragma asm   /    #pragma endasm

   2)、#asm   /   #endasm

   3)、_asm("rim")

  

   #pragma asm                                  Extern char test;

     XREF  asmvar                               void func(void)

   #pragma endasm                               {

                                                  if (test)

                                                  #asm   /* no need for { */

                                                   SCF                ;Set carry bit

                                                   RLC asmvar    ;Access assembler variable

                                                  #endasm

                                                  else

                                                    test = 1;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2