单片机的GPIO,如何实现触摸按键的功能?

cathy的头像
cathy 发布于:周一, 08/22/2022 - 16:12 ,关键词:

我以前开发过多款带有触摸按键功能的消费类电子产品,用的是现成的“触摸IC”。但后来才知道,有些芯片就是用低功耗单片机实现的。

下面,结合STM8和STM32来简单描述一下相关内容。

STM8触摸原理及开发库

先简述一下在STM8S中应用Resistor-Capacitor电阻电容(RC)采集原理。

“单片机的GPIO,如何实现触摸按键的功能?"

硬件原理,可以参考官网:

“单片机的GPIO,如何实现触摸按键的功能?"

“单片机的GPIO,如何实现触摸按键的功能?"

使用MCU的资源:

“单片机的GPIO,如何实现触摸按键的功能?"

官网提供STM8库相关开发资料:
https://www.st.com/en/embedded-software/stm8s-touch-lib.html

STM32触摸感应控制器

相比STM8而言,STM32的触摸按键功能就更高级。

在STM32中,部分MCU(F0、 F3、 L1)具有Touch sensing controller触摸感应控制器,简称TSC。

这里可以参看ST社区的一份关于文档《STM32F0—触摸按键》:
http://www.stmcu.org.cn/document/detail/index/id-213949

或者查看MCU对应的《参考手册》,可以知道触摸控制器:电荷转移的过程以及其原理。

“单片机的GPIO,如何实现触摸按键的功能?"
  • 利用电容储存电荷的特性;

  • 电极上的待测电容Cx向采样电容Cs充电;

  • 电荷转移过程中个模拟开关是硬件做在GPIO里的;

  • 重复电荷转移的过程,直到采样电容Cs上的电压达到它说连GPIO的VIH门限值;

  • 过程重复的次数就反映了待测电极上电容的大小;

  • 电极被触摸时,重复次数N减小。

更多参考资料:

关于Touch触摸的标准外设库:

https://www.st.com/en/embedded-software/stm32-standard-peripheral-library-expansion.html?querycriteria=productId=LN1734

“单片机的GPIO,如何实现触摸按键的功能?"

官方提供的一套关于Touch文档,值得参看:
https://www.st.com/content/ccc/resource/technical/document/user_manual/5d/e8/16/b7/a5/f5/47/bf/DM00075710.pdf/files/DM00075710.pdf/jcr:content/translations/en.DM00075710.pdf

作者:strongerHuang
来源:嵌入式专栏
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 277