触摸芯片CP25122508芯片用户指南.docx

上传人:b****8 文档编号:9571315 上传时间:2023-02-05 格式:DOCX 页数:12 大小:123.93KB
下载 相关 举报
触摸芯片CP25122508芯片用户指南.docx_第1页
第1页 / 共12页
触摸芯片CP25122508芯片用户指南.docx_第2页
第2页 / 共12页
触摸芯片CP25122508芯片用户指南.docx_第3页
第3页 / 共12页
触摸芯片CP25122508芯片用户指南.docx_第4页
第4页 / 共12页
触摸芯片CP25122508芯片用户指南.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

触摸芯片CP25122508芯片用户指南.docx

《触摸芯片CP25122508芯片用户指南.docx》由会员分享,可在线阅读,更多相关《触摸芯片CP25122508芯片用户指南.docx(12页珍藏版)》请在冰豆网上搜索。

触摸芯片CP25122508芯片用户指南.docx

触摸芯片CP25122508芯片用户指南

CHIPHOMERTECHNOLOGY(SHANGHAI)LIMITED

CP2512/2508芯片用户指南

2007-09-05

版本记录

版本号

日期

说明

作者

检查人

1.0

2007-09-05

首次发布

白文翔

CopyrightInformation

©Copyright2005byChiphomerTechnologyLimited.Allrightsreserved.ThisdocumentisprovidedtotheChiphomer’scustomersasproducts’description,andcontainsinformationconsideredproprietarybyChiphomerTechnologyLimited.Nopartofthisdocumentmaybecopied,orreproducedinanyformorbyanymeans,ortransferredtoanythirdpartywithoutthewrittenconsentofChiphomer.

Thecontentsofthisdocumentmayberevisedwithoutpriornotice.

联系方式

启攀微电子(上海)有限公司

地址:

上海市宜山路1618号D栋4楼

电话:

+86-(0)21-6401454364058488

传真:

+86-(0)21-64050030

邮编:

201103

Email:

sales@

Web:

深圳办事处

地址:

深圳市福田区车公庙都市阳光名苑2栋10D

电话:

+86-(0)755-82046706

传真:

+86-(0)755-82046709

邮编:

518048

目录

CP2512/2508芯片用户指南1

版本记录2

目录3

图目录4

1目的5

2硬件连接6

2.1IIC连接方式6

2.2SPI连接方式7

3串口通讯9

4寄存器配置和应用11

4.1查询模式与中断模式11

4.2初始化配置11

4.3主处理流程12

5高级应用13

5.1矩阵式应用13

5.1.1硬件设计13

5.1.2软件设计13

5.2滑动应用14

5.2.1硬件设计14

5.2.2软件设计14

5.3其它15

图目录

图1IIC接口6

图2CP2512/CP2508IIC典型连接7

图3CP2512/CP2508SPI4线典型连接7

图4CP2512/CP2508SPI3线典型连接8

图512个感应通道完成6X6矩阵应用13

图6采用三个感应通道实现直线滑动和圆形滑动示例14

1目的

本文档针对客户实际应用,阐述了主CPU与CP2512/2508芯片的硬件连接、通讯和寄存器配置操作。

通过阅读此文,希望用户能够解决使用中遇到的基本问题。

2硬件连接

CP2512/2508芯片都提供软件和硬件两种工作模式,即软件工作模式下,可通过串口IIC/SPI访问芯片内部状态和相关配置寄存器,而硬件模式下,无法使用串口。

不论是采用IIC还是SPI传输,CP2512/2508芯片都作为SLAVE器件,而主控制芯片作为MASTER器件。

3IIC连接方式

IIC串口是一种通用的2线传输方式,一个为时钟线,另一个为数据线。

IIC总线的特点是时钟和数据线上的高电平都是依靠芯片外部的上拉电阻拉高的。

通常,芯片自带的IIC接口都为开漏输出方式,即输出高阻或者低电平,如图所示。

图1IIC接口

主控制芯片与CP2512/2508芯片的联接见下图。

请注意ADDR0引脚与ADDR1引脚必须接固定电平,不允许悬空。

建议将这两个引脚拉低。

图2CP2512/CP2508IIC典型连接

CP2512和CP2508工作于3.3V电压。

当与工作于5V电压的主控制芯片连接时,芯片外部上拉电平必须为5V。

4SPI连接方式

SPI串口是一种通用的串行总线,CP2512/2508芯片支持3线和4线传输方式。

使用三线传输方式时,为时钟线、使能线和数据线。

使用四线传输方式时,为时钟线、使能信号线、数据输出线和数据输入线。

主控制芯片和CP2512/2508芯片的连接方式如下图所示。

图3CP2512/CP2508SPI4线典型连接

图4CP2512/CP2508SPI3线典型连接

注意:

为了减小芯片功耗,不传输时,请勿将CP2512/2508芯片的输入引脚SDI悬空,而必须把它保持在一个固定电平。

5串口通讯

CP2512/2508芯片提供I2C和SPI两种接口。

在部分主机芯片中有已集成的串口模块,此时的通讯较为简单;如主机芯片没有集成串口模块,可以使用GPIO引脚仿真串口进行通讯。

串口通讯是芯片应用的基础,只有在串口通讯通畅无误的前提下,才能开发出丰富多彩的应用。

串口的详细时序请参考CP2512/2508芯片的详细资料,在此不作赘述。

I2C接口的优点是使用两个引脚就能完成通讯,缺点I2C接口的速率较慢(必须小于1MHz,建议小于300kHz),如使用GPIO仿真I2C串口,程序较SPI接口复杂。

SPI接口的优点是速度快,接口程序较I2C接口简单,缺点是使用的引脚较多(支持4线制和3线制两种接口)。

在主机芯片的接口引脚不受限制的前提下,推荐使用SPI接口。

以下两个附件是SPI和I2C接口的仿真程序:

Spi.c文件实现4线制SPI接口的GPIO仿真功能,其中有三个函数:

spi_init、write_spi_reg、read_spi_reg。

spi_init的作用是初始化SPI各个引脚的状态,在初始化时调用,该函数没有输入值和返回值。

write_spi_reg的作用是将配置值写入CP2512/2508芯片的寄存器,该函数的输入分别是寄存器地址和寄存器的配置值。

read_spi_reg的作用是读取连续若干个寄存器的值,并保存到指定数据缓冲区中。

函数输入分别是需读取寄存器的起始地址,需读取寄存器的数量和数据缓冲区的地址。

通过修改变量spi_freq的值,可以修改SPI接口的速率,由于实际中使用的主机芯片千差万别,无法统一给出该值。

建议该值配置为主机芯片指令执行频率/1MHz,也就是指令频率为20MHz的主机芯片,该值建议配置为20。

指令SPICLK_DIR=1表示将CLK引脚配置为输出引脚,SPICLK_DIR=0则表示将CLK引脚配置为输入引脚。

SPICLK_SET=1表示将CLK引脚配置为高,SPICLK_CLR=1表示将CLK引脚配置为低。

SPIMISO_DAT获取MISO引脚上的值,若该引脚高该值为1,若该引脚低该值为0。

CLK表示时钟引脚、CSN表示使能引脚、MISO表示主机输入从机输出引脚(masterinslaveout引脚)、MOSI表示主机输出从机输入引脚(masteroutslavein引脚)。

如使用3线制SPI接口,需要修改部分程序。

在初始化程序中,只需要初始化三个引脚的状态。

在写寄存器的函数中,不需要修改。

在读取寄存器的函数中,在写完需要读取寄存器的地址后,需要将数据引脚由输出引脚改为输入引脚,此后再读取该引脚的电平。

I2C.C文件实现了I2C接口的GPIO仿真功能。

TOUCHPAD_I2C_Start的作用是初始化各个引脚的状态,在初始化时调用,该函数没有输入值和返回值。

TOUCHPAD_I2C_ReadReg的作用是读取一个寄存器的值,函数输入为寄存器地址,返回值是该寄存器的数值。

TOUCHPAD_I2C_WriteReg的作用是配置寄存器,函数输入是寄存器的地址和寄存器的配置值,该函数没有返回值。

DelayXus函数的作用是插入延时,用户可以通过修改该函数而修改I2C接口的时钟频率。

TOUCHPAD_SetSDA_IN功能为设置数据引脚为输入引脚,TOUCHPAD_SetSDA_OUT功能为设置数据引脚为输出引脚,TOUCHPAD_SetSCL(bLow)的功能是设置时钟引脚的电平(若要将引脚设置为高,输入1;若要将引脚设置为低,输入0),TOUCHPAD_SetSDA(bLow)的功能是设置数据引脚的电平(若要将引脚设置为高,输入1;若要将引脚设置为低,输入0),TOUCHPAD_GetSCL的功能是获取数据引脚的高低(若引脚为高,该值为1;若引脚为低,该值为0)。

6寄存器配置和应用

在通讯接口调试正常之后,就需要根据实际应用编写一个初始化程序配置控制寄存器,并读取寄存器状态从而获取各个按键的状态以便进一步的处理。

7查询模式与中断模式

用户首先需要确认使用定时查询模式还是中断模式去读取寄存器的状态。

采取定时查询模式,在初始化过程中并不需要特别配置寄存器,使用默认值即可。

定时查询函数只需要读取所需的寄存器即可。

采取中断模式就需要在初始化过程中配置中断寄存器。

需要确认当中断发生时,中断引脚以高电平还是低电平给出指示。

若以高电平指示中断,INTCR寄存器(地址0x05)的第12位需要配置为1;若以低电平指示中断,INTCR寄存器的第12位需要配置为0。

下一步需要确认实际使用了哪几个按键,并将INTCR寄存器中对应比特配置为1。

这样在相应通道的按键状态发生变化时就会触发中断,既当按键被触发后会触发一次中断,当按键解除后还会触发一次中断。

最后需要将INTE寄存器(地址0x06)中使用通道所对应的比特置1,从而使该通道的状态变化能够引发中断。

在中断处理流程中,必须先读取ISR寄存器(地址0x33)以便将该寄存器清0。

因为若不读取一次该寄存器,则该寄存器不为0,此次中断处理完成后它还会继续触发中断。

8初始化配置

主机芯片上电之后,运行初始化程序对CP2512/2508芯片进行初始化操作。

首先配置PDN寄存器(地址为0x01)为0x8000,复位CP2512/2508芯片,此后加入毫秒级的延时。

其次若是采用中断模式需要配置中断相关寄存器。

若实际使用中,没有使用滑动功能,也没有组合按键(同时触发多个按键而实现某项功能)时,将ASS1寄存器(地址为0x03)中实际按键所对应的比特配置为1(如使用1~6通道,将ASS1寄存器配置为0x003f)。

反之则使用默认配置。

在灵敏度控制电阻选定之后,用户简单测试按键是否能被正常触发,若能正常触发则不修改灵敏度控制寄存器。

这样做带来的问题是,灵敏度很可能会配置得过高,从而非常容易引起误触发。

将电路板上的串口线和电源线都连接到启攀公司给出的转接板上,并在PC上运行DEMO软件,即可通过软件读取到手指触摸按键后,电容读数的变化值。

将此差值乘以0.5,就能得到合适的灵敏度配置值,将该值配置到SETTHi寄存器(地址0x07到0x12);将差值乘以0.35,并将该数值配置到CLRTHi寄存器(地址0x13到0x1e)。

上文描述了最基本最常用的寄存器配置方法,更高级应用会在下一章节详细描述。

9主处理流程

主处理流程的作用时实时读取按键的状态,并作进一步处理。

如使用中断处理模式,需要额外读取ISR寄存器(地址0x33)。

读取ASSST寄存器(地址0x31),可以获取各个按键的触发状态。

随后用户可以根据其实际应用编写程序。

10高级应用

电容式按键的一大优点就是能够使客户设计出更为眩目的应用和更大的灵活度。

现有CP2512/2508芯片最多支持12个独立按键,而巧妙的矩阵式按键设计使单芯片所能支持的最大按键数量上升到36个(6×6)。

通过多个按键的重复排列和快速定时扫描,可以实现各种滑动应用(包括圆形滑动和水平滑动)。

11矩阵式应用

12硬件设计

矩阵式感应判断功能是CP25xx单点感应的特殊应用,例如CP2512提供了12个感应通路最多可以完成36个(6X6)感应按键判断,如图5所示。

图512个感应通道完成6X6矩阵应用

在矩阵应用中,把感应通道分成X、Y两组。

每一个按键点通过X/Y坐标确定位置(X/Y坐标也就是X组的感应通道和Y组的感应通道)。

以CP2512为例,按图5设计按键,若感应物体接触到A区域时,通道2和通道7被触发,即可确定感应物体位置。

13软件设计

在使用矩阵式应用时,受到面板面积的限制,按键距离往往较小从而比较容易引起误判。

这时就需要启动邻键抑制功能防止误触发。

根据矩阵式按键的排列方式,按键被分成了两组,一组指示按键的横坐标,一组指示按键的纵坐标,将此两组分别设置邻键抑制功能即可,设置方法为将通道对应寄存器比特位置一。

如前文所示,1~6键指示横坐标,7~12键指示纵坐标,那么需要将ASS1寄存器(地址为0x03)设置为0x03f,ASS2寄存器(地址为0x04)设置为0x0FC。

在扫描过程中,根据按键的横坐标和纵坐标,即可计算出按键的具体位置。

14滑动应用

滑动应用分为两种,一种叫相对滑动,指只需要判断出滑动的方向而不需要判断各个时刻手指的具体位置;另一种为绝对滑动,指除了要判断出滑动的方向之外还需要判断出各个时刻手指的具体位置。

相对滑动最少只需要三个按键就能实现滑动功能,而绝对滑动往往需要六个甚至更多的按键才能实现滑动功能。

不管是圆形滑动还是水平滑动,其本质都是一样的,既都是滑动条,区别只在于滑动条的形状不一样。

两者的硬件布局不一样,但是可以使用相同的软件。

15硬件设计

图6中是典型的直线滑动和圆形滑动应用实例。

采用类似123123123这种组合,可以实现滑动方向判断。

当感应物体移动时,会依次触发三个感应通路。

比如向右(顺时针)滑动时,CP25XX能判断出感应通路1、通路2和通路3被先后触发;向左(逆时针)滑动时,CP25xx能判断出感应通路3、通路2和通路1被先后出发。

图6三个感应通道实现直线滑动和圆形滑动示例

设计滑动按键时,要把相邻按键尽量靠近,间隙可以小于1mm。

图7是另一种直线滑动和圆形滑动应用实例。

使用了多个按键实现滑动功能的检测。

图7多感应通道实现滑动实现实例

16软件设计

在滑动应用中,需要设置较高的灵敏度,即SETTHi寄存器和CLRTHi寄存器比相同情况下独立按键的值要小。

必须以较快的速度定时查询按键的状态。

若扫描的速度不够快,手指滑动较快的情况下,部分按键可能会被漏检从而不能正确的判断出滑动方向。

根据实验室经验,按键扫描时间间隔必须小于100ms,推荐时间间隔为20ms。

若使用中断的方法来扫描,由于只有在按键的状态发生变化时才会触发中断,这就无法判断两个按键被触发的时间间隔,从而无法区分连续滑动还是跳跃式的按键。

在无其它特殊要求的前提下,建议用户使用三键重复排列实现滑动功能。

附件为三个按键重复排列实现滑动功能的示例程序:

由scroller函数实现滑动判断功能,三个输入key_a、key_b、key_c分别是三个按键的状态,若相应按键被触发则该值为1,反之为0。

Scroller函数返回0表示当前没有发生滑动,若返回1表示当前发生了正向滑动,若返回-1表示当前发生了逆向滑动。

滑动判断的基本原理是当手指位置发生了变化而且达到一定幅度后,判断发生了该方向的滑动。

按键1、2、3被触发时位置分别被记为0、2、4。

当1、2同时被触发时,手指一定位于两个按键之间,位置就被记录为1。

这样使用三个按键产生了6个位置,在使用最少按键数的前提下,将位置信息最大化。

当手指位置变化达到2时,才能确认发生了滑动事件。

基于以上原理,用户可以根据实际应用改写scroller函数,实现其它的滑动功能。

当使用多个按键实现滑动功能时,用附件的程序进行滑动判断,若返回0表示没有发生滑动,返回1表示发生了正向滑动,返回-1表示发生了逆向滑动。

判决程序有两个输入,第一个是参与滑动的所有按键的状态,低位对齐每个比特对应一个按键的状态(如果该按键被触发,对应比特置1;若按键没有被触发,对应比特置0);另一个是表示参与滑动的按键的数量。

该算法的实现思想是,记录被触发按键中,编号最大的和编号最小的,由此可以确定按键中心点,若中心点发生了变化则可以确定发生了某个方向的滑动。

对于首尾相接的情况,进行了特殊的处理。

17其它

用户的实际应用日新月异,我们会逐步添加用户其它较为通用的应用设计。

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

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1