STM32笔记20--电容触摸实验/IIC协议

1、电容触摸按键实验

参考资料:《STM32开发指南-库函数版本》第16章 电容触摸按键实验

1.1、电容触摸按键实验原理

首先是模电的相关知识,如下图所示,当开关断开时,没有电流经过,电容两端电压的压差为0,电阻两端的压差也为0,当开关闭合时,电流经过,开始缓慢的给电容充电。电子聚集在电容的正极,只要时间足够长,电容两端的压差可以无限等于V1;

当电容两端压差无限接近于V1时,电容与电源之间也就没有压差,此时就不会有电流经过,那么电容两端电压从0到V1的过程就称为电容的充电过程。根据模拟电路的知识有:

 上图中的结论,即:同样的条件下,电容值C跟时间值t成正比关系,电容越大,充电到达某个临界值的时间越长,这个临界值指的就是:电容两端压差与电源电压无限接近的时间点;

 那么该实验的原理如下所示;

重点原理: 如图所示,在开发板上有一块区域为TPAD触摸区域,那么该如何判断该区域是否被触摸(或者说被按下)呢,在该区域的硬件连接是在TPAD和PCB间连接了一个杂散电容,记为Cs,那么当手指触摸到TPAD时,相当于在杂散电容旁并联一个电容,记为Cx,根据电容并联的计算公式,该区域的总电容变为了Cs+Cx,电容值相较于触摸之前变大了,那么比较电容前后的充放电时间,就可以判断是否触摸或者说按下了该区域。

以上的原理具体到实现的方法上就是:当我们没有按下TAPD时,检测到充电时间为T1,当我们按下TAPD时,检测到充电时间为T2,一旦系统检测到T2-T1大于某个阈值(可以有效防止抖动),那么就可以判断TAPD被按下。具体步骤如下:

 根据上述的内容,程序编写的思路如下:(看不太懂)

 其中,TPAD_Get_Val函数的目的就是在,电容被放电至0,定时器也被设为0后,计时电容充满电的时间,10次调用是为了防止出现误差,使结果更加准确。去掉最高的两个,去掉最低的两个,剩下6个取平均。

2、IIC协议

(1)

IIC通信方式的优点有:占用空间小,有效地降低了互联成本;同时IIC通信支持多主控,任何能够进行发送和接收的设备都可以成为主控(但是在热河时间点只能有一个主控)

但是对于STM32来说,STM32的硬件IIC并不稳定,多用软件的方式来模拟。

IIC通信有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL,时钟信号由主控设备产生,对应到这个实验,他的时钟信号就是由STM32产生。

如上图所示,SDA和SCL两根线都接上拉电阻,被拉高电平,因此SDA和SCL两根线在不接外设的时候,一般都被拉高至高电平。

(2)

IIC协议,IIC通信时有三种信号,分别是:起始信号,结束信号和应答信号;这些信号中,起始信号是必需的,应答信号和结束信号没有硬性要求。

 如上图所示,是IIC协议的简化时序图,对上图的说明为:

当SCL和SDA均为高电平--->规定IIC总线为空闲状态;

当SCL为高电平,SDA为由高到低电平的跳变状态--->规定为IIC总线为起始信号,(注意SDA是一个由高到低的跳变过程!

当SCL为高电平,SDA为由低到高电平的跳变过程--->规定为IIC总线的结束信号,(注意SDA是一个由低到高的跳变过程!

至于应答信号,是用来表示接受器是否成功接收了发送器发送的数据的,

当发送器每发送一个字节(8bit),就在时钟脉冲的第9个周期释放数据线,由接收器反馈一个应答信号,

当应答信号为低电平时,表示为有效应答,即接收器成功接收了该字节。

当应答信号为高电平时,表示为非有效应答,即接收器没有接收该字节。

(3)

IIC总线的两根线:SDA数据线和SCL时钟线,在传送数据时,当SCL时钟线上的时钟信号为高电平时,数据总线上的信号必须保持稳定,(要么保持高电平,要么保持低电平,期间不允许跳变)

同时,在传送数据时,当SCL时钟线上的时钟信号为低电平时,数据总线上的数据信号的高电平和低电平状态允许变化。

即:数据在时钟线SCL的上升沿到来之前就需准备好。并在在下降沿到来之前必须稳定。

 在传送数据时,在SCL时钟信号的配合下,在SDA上逐位传送数据,数据位的传送是边沿触发。

(4)

IIC总线的数据传输,IIC上挂载的设备分为主设备和从设备,并且不管是主设备还是从设备都会对应一个唯一的地址,主从设备之间就是通过这个地址来传输数据,一般地,我们将CPU带IIC总线接口的模块作为主设备,挂载在总线上的其他设备为从设备。

主设备向从设备传输数据时,主设备需要先确定从设备的地址,从设备的地址大多数是7位,根据IIC协议的规定,需要给地址位添加一个最低位来指明  “接下来数据的传输方向”  0表示:主设备向从设备写数据;  1表示: 主设备从从设备中读数据;如下所示:

总结IIC协议,其实就是类比为两个人说话:1、你说的别人得能听懂:双方约定信号的协议。2、你的语速别人得能接受:双方满足时序要求。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值