嵌入式开发--XW09A触摸芯片的使用

这篇具有很好参考价值的文章主要介绍了嵌入式开发--XW09A触摸芯片的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

XW09A触摸芯片

XW09A是厦门市芯网电子科技有限公司出品的一颗触摸芯片,支持9键多点触摸,I2C接口,带中断引脚。
以下摘抄自芯片手册
极高的灵敏度,可穿透13mm 的玻璃,感应到手指的触摸
超强的抗干扰和ESD 能力,不加任何器件即可通过人体8000v 实验
外围电路简单,最少只需一个4.7nf 电容,芯片即可正常工作
外围寄生电容自动校正
工作电压范围:2.5 ~ 5.5 V
SOP16 环保封装

电路图

嵌入式开发--XW09A触摸芯片的使用,stm32,嵌入式,触摸,单片机,XW09A
外围电路很简单,就是几个电容,连接到触摸键时需要通过1K电阻,SDA,SCL,INT需要上拉,电源输入最好经过RC滤波,实测无RC滤波也不影响。

通讯时序

嵌入式开发--XW09A触摸芯片的使用,stm32,嵌入式,触摸,单片机,XW09A
按上图写软件就可以,说明一下:
1 主机发送起始信号
2 主机发送7位地址和1位读,对于本芯片来说,就是发送0x81
3 等待芯片响应的ACK位
4 连续读取16位按键数据,其中起始3位是高电平,抛弃,然后连续读的9位是按键状态,最后4位抛弃
5 NACK信号
6 主机发送STOP
通信结束。

软件编写

因为其I2C的通讯协议与标准I2C通讯协议不兼容,故没有采用硬件I2C,而是用的软件I2C,当INT进中断后置标志位,在主程序中查询标志位,并调用以下这个函数即可。

u8 I2C_Read_XW09A(void)//i2c读XW09A,返回值是是当前的键值,从1开始计数,为0表示未按下
{
	u16 i,receive=0;
  u8 ret=0;
  
	I2C_SDA_OUT();//SDA设置为输出
  
  //主机发送开始信号
  I2C_Start();
  
  //发送8位地址
  I2C_Send_Byte(0x81);    //xw09a高7位表示地址,其值为0x4,左移1位为i2c地址,再加上最低位的1(表示读取),组合后地址为0x81
  
  //等待从机应答
  if(I2C_Wait_Ack() != 0)
    return 0;
  
  //接收16位数据
  I2C_SDA_IN();//SDA设置为输入
  for(i=0;i<16;i++ )
	{
    I2C_SCL(0); 
    delay_us(1);
		I2C_SCL(1);
    receive<<=1;
    if(I2C_SDA_READ())
      receive++;   
    else
      ret = i-2;
		delay_us(1); 
  }
  
  //主机发送无应答信号
  I2C_NAck();//发送nACK
  
  //主机发送停止信号
  I2C_Stop();

  //SDA设置为输入
	I2C_SDA_IN();//SDA设置为输入
    
  return ret;
}

问题和解决

任何时刻均可以读取芯片数据,但只能在INT为低电平期间才会有正确的触摸状态的数据
这一点我开始没有注意到,我是设定的上升沿进中断,读取的状态如下图
嵌入式开发--XW09A触摸芯片的使用,stm32,嵌入式,触摸,单片机,XW09A
SDA始终是高电平。
后来找厂家咨询,索要时序图,但未能提供,最后是把板子寄到厂家搞定,最后总结问题,才发现我的时序是上升沿进中断,改为下降沿进中断,然后读取i2c,一切正常,时序如下图:
嵌入式开发--XW09A触摸芯片的使用,stm32,嵌入式,触摸,单片机,XW09A
在解决问题期间,厂家的客服和技术支持表现出了极其负责的态度,在这里为他们点赞,也祝愿芯网公司产品大卖。
同时希望厂家能把PDF文档做得完善些,将INT,SDA,SCL的时序图放进去,如果PDF里面有这个图的话,可以让用户少走弯路。文章来源地址https://www.toymoban.com/news/detail-535899.html

到了这里,关于嵌入式开发--XW09A触摸芯片的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://blog.csdn.net/13011803189/article/details/131608521

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包