触摸传感器QST108与PIC单片机的接口设计

发布者:Serene123最新更新时间:2011-08-17 关键字:触摸传感器  QST108  PIC单片机 手机看文章 扫描二维码
随时随地手机看文章

    1 概 述   

    QST108是意法半导体公司针对人机界面的触摸按键控制而推出的电容触摸传感器。其工作原理采用了美国昆腾公司的电荷转移电容专利技术(QProx),支持8个独立按键,且可选择按键状态检测输出或I2C总线控制2种正常工作方式;同时,通过软件命令可使其进入低功耗模式,当有按键按下时可被唤醒。QST108特有的相邻按键抑制算法使得一个按键在按下未松开时,其他按键处于无效状态;自校准和自动漂移补偿功能使其无须人工校准,从而进一步降低了QST108的应用难度。引脚配置如图1所示,各引脚功能如表1所列。   

    2 QST108的工作方式   

    2.1 按键状态检测输出方式   

    QST108具有按键状态检测输出和I2C总线控制2种正常工作方式。引脚OPT1的高低电平决定QST108的具体工作方式:高电平,工作在按键状态检测输出方式;低电平,则为I2C总线控制方式。当工作在按键状态检测输出方式时,8个按键的状态由引脚OPT6的电平决定,直接或以BCD码方式通过引脚KOUT1~KOUT8输出。其中,BCD码方式只用到引脚KOUT1~KOUT4。由于该操作模式较简单,本文只详细讨论了QST108工作在I2C总线控制方式下,与PIC单片机的接口设计及注意事项。

2.2 I2C总线控制方式   

该方式下,QST108通过I2C总线与微控制器相连。QST108作为从机,引脚OPT4、OPT3、OPT2的输入电平决定了QST108作为I2C总线上从机地址的低3位,高4位地址固定为0101。通过软件设置可提供QST108使用的最大灵活性。可提供5个引脚作为通用输出端口。

3 QST108的主要操作命令   

当QST108在I2C总线控制方式下工作时,主要是通过I2C总线协议向QST108发送各种控制命令,其中包括初始化设置命令、QST108的按键状态读出命令等。操作命令按其长度分为短命令帧和扩展命令帧。考虑到前者已可完成QST108的正常操作,本文只介绍短命令帧。其数据格式如表2所列,常用命令如表3所列。注意,当QST108收到不同的命令时,会给出不同的应答帧结构。   

当命令为短帧结构时,命令帧的首字节的最高位为1,以与扩展命令相区别。命令ID是命令编号,由5位数据组成,用来区分不同的命令;参数位只有1位,当该位置1时代表该命令具有1个字节的参数,若为0则该命令无参数且无校验和字节;校验位用来产生奇校验,注意该校验位只针对命令帧的首字节(即命令帧的第1个字节中,“1”的个数为奇数);8位校验和是命令帧的前2个字节的累加和的低8位。

若QST108未能正确接收到命令或接收了非法命令,则会给出统一的含有错误代码的应答帧(只包含一个字节),如表4所列。对QST108来说,与读触摸按键状态命令相对应的应答数据帧结构如表5所列。

  

由表4可知,错误帧只有一个字节的数据,校验位提供了判断是否正确接收了该数据的简单依据。错误代码共6位,用来区分不同的错误。比如,错误代码为0x01,表示QST108收到一个非法命令;错误代码为0x11,表示接收的命令的校验和出错等。

由表5可知该应答帧的长度为4个字节,SCK1~SCK8分别代表了触摸按键的状态,为1表示相应的按键按下,为0表示对应的按键没有按下;最后一个字节为校验和,即应答帧前3个字节的累加和的低8位。需要强调的是,按键错误代码只有低3位有效:位0表示QST108正在进行校准状态;位1表示目前累加的按键次数是否到了器件提供的最大按键数目,为1表示达到最大数目;位2表示目前是否达到最少按健次数。同时,还需注意区分QST108发出的应答帧是错误帧,还是正确接收到命令给出的正常应答帧结构。办法很简单,当软件读取应答帧的第1个字节后判断其最高位:是0,表示为正常的应答;是1,表示接收的为错误帧,此时主机只需产生停止位并进行出错处理或停止操作。

4 QST108与PIC的接口电路   

图2给出了基于QST108与PIC单片机的触摸按键检测实用电路设计。QST108与PIC通过I2C总线通信,接口简单,按键输入部分参考了其数据手册给出的典型应用电路图的设计方法。单片机选用PIC16F877A,其片内资源丰富,MSSP模块支持I2C总线协议,控制QST108非常方便。QST108的IRQ引脚与PIC16F877A的外部中断输入引脚RB0相连,由于IRQ引脚为开漏输出,所以必须接上拉电阻。当有按键被按下时,IRQ引脚由高变低触发PIC16F877A产生外部中断,单片机发出读取按键状态命令从而确定哪个键被按下,之后根据不同的按键进行不同处理。

关键字:触摸传感器  QST108  PIC单片机 引用地址:触摸传感器QST108与PIC单片机的接口设计

上一篇:基于VC的USB接口通信程序设计
下一篇:什么是PCI总线

推荐阅读最新更新时间:2024-05-02 21:32

stm32单片机与pic单片机的优缺点对比分析
stm32单片机 由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名其强大的功能主要表现在: stm32单片机特性 1、内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/
[单片机]
stm32单片机与<font color='red'>pic单片机</font>的优缺点对比分析
PIC单片机实现双字节无符号数的除法
编写子程序Div_16,实现双字节无符号数除法。自行定义变量,其中: ACCALO ;存放被除数低 8 位 ACCAHI ;存放被除数高 8 位 ACCBLO ;存放除数 8 位 ACCCLO ;存放余数 8 位 ACCCHI ;存放商 8 位 采用移位法,设被除数为ACCA、除数为ACCBLO、商为ACCCHI(初值为0)、余数为ACCCLO(初值为0)。ACCA由高位至低位依次左移进入ACCCLO单元,每次移位进入后比较ACCCLO单元和ACCBLO的值,如果ACCCLO≥ACCBLO,则将这一位的商单元的值置1,然后从ACCCLO中减去ACCBLO,否则不做操作。直到ACCA全部进入ACCCLO单元为止。此时AC
[单片机]
如何开发出一个PIC单片机
PIC单片机在国内日益流行,本文介绍MicroChipPIC系列单片机开发过程中软、硬件设计的一些经验、技巧。 由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者在PIC单片机开发过程中的一些经验、技巧,供同行参考。 1 怎样进一步降低功耗 功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,3
[单片机]
如何开发出一个<font color='red'>PIC单片机</font>
pic单片机的模拟I2C通信
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; Copyright (C) 1997 by Innovatus ; This code may be distributed and used freely provided that this ; copyright notice stays intact and that any modifications are noted. ; For more information about Innovatus: http://www.innovatus.com
[单片机]
pic单片机驱动CAN接口收发数据C语言程序,11位标准标识符
/********************************************* ** 功能描述: CAN口测试,11位标准标识符** *********************************************/ #include p30f6014.h int failmemory ; _FWDT(WDT_OFF); //_FOSC(CSW_FSCM_OFF & XT); _FOSC(CSW_FSCM_OFF & XT_PLL4); unsigned int buffer1; unsigned int buffer2; unsigned int buffer3; unsigned int buffe
[单片机]
PIC单片机的基本程序设计方法解析
PIC单片机(Peripheral Interface Controller)是一种用来开发去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。本内容讲述了PIC单片机中的程序设计方面的学习 1、PIC单片机程序的基本格式 先介绍二条伪指令: EQU ——标号赋值伪指令 ORG ——地址定义伪指令 PIC16C5X单片机在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为: PIC16C54/55:1FFH PIC16C56:3FFH PIC16C57/58:7FFH 一般来说,PIC单片机的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一
[单片机]
<font color='red'>PIC单片机</font>的基本程序设计方法解析
PIC单片机入门_定时器/计数器TMR1详解与实例
1.前言 前面介绍了定时器/计数器TMR0的基本概念和用途,下面介绍PIC单片机中另外一种定时器/计数器TMR1。 2.TMR1的特性 TMR1为16位宽,附带一个3位的分频器,还自带一个低功耗低频的时基振荡器。TMR1的主要用途:类似于TMR0,用于定时和计数;自带一个时基振荡器,可记录年、月、日、时、分、秒,实现实时时钟RTC(real time clock);可以与CCP模块配合使用,实现输入捕捉或输出比较功能。 TMR1由二个8位寄存器TMR1H和TMR1L对组成的16位定时器/计数器,可以由软件读/写,这二个寄存器都是和RAM统一编址的,地址分别为0EH和0FH 。TMR1H:TMR1L寄存器对,从0000H递
[单片机]
PIC单片机程序设计的基本格式
为了快速掌握PIC单片机源程序的基本结构,这里给出一个典型的程序结构框架。建立源程序时首先用伪指令TITLE提供程序的标题,接着给出整个程序的总说明,并用列表伪指令LIST指定所用单片机型号和文件输出格式,再利用INCLUDE伪指令读入MPASM中提供的定义文件如《P16F84INC》,然后对片内常用资源进行定义,再给出一般程序的基本结构框架。现举例如下。 TITLE“This is……”;程序标题   ;程序说明   LIST P="16F84",F=1NHX8M   ;   include   -config_RC_Qsc &_WDT_0FF…   ;资源定义和变量定义   STATUS EQU 03   FSR EQU
[单片机]
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved