我以前开发过多款带有触摸按键功能的消费类电子产品,用的是现成的“触摸IC”。但后来才知道,有些芯片就是用低功耗单片机实现的。
下面,结合STM8和STM32来简单描述一下相关内容。
<strong><font color="#4e5e9e">STM8触摸原理及开发库</font> </strong>
先简述一下在STM8S中应用Resistor-Capacitor电阻电容(RC)采集原理。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100563274-267142-1.png&…; alt=“单片机的GPIO,如何实现触摸按键的功能?" /></center>
硬件原理,可以参考官网:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100563274-267143-2.png&…; alt=“单片机的GPIO,如何实现触摸按键的功能?" /></center>
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100563274-267144-3.png&…; alt=“单片机的GPIO,如何实现触摸按键的功能?" /></center>
使用MCU的资源:
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100563274-267145-4.png&…; alt=“单片机的GPIO,如何实现触摸按键的功能?" /></center>
官网提供STM8库相关开发资料:
<a href="https://www.st.com/en/embedded-software/stm8s-touch-lib.html">https://w…;
<strong><font color="#4e5e9e">STM32触摸感应控制器</font> </strong>
相比STM8而言,STM32的触摸按键功能就更高级。
在STM32中,部分MCU(F0、 F3、 L1)具有Touch sensing controller触摸感应控制器,简称TSC。
这里可以参看ST社区的一份关于文档《STM32F0—触摸按键》:
<a hrf="http://www.stmcu.org.cn/document/detail/index/id-213949">http://www.stm…;
或者查看MCU对应的《参考手册》,可以知道触摸控制器:电荷转移的过程以及其原理。
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100563274-267146-5.png&…; alt=“单片机的GPIO,如何实现触摸按键的功能?" /></center>
<ul>
<li>
<p>利用电容储存电荷的特性;</p>
</li>
<li>
<p>电极上的待测电容Cx向采样电容Cs充电;</p>
</li>
<li>
<p>电荷转移过程中个模拟开关是硬件做在GPIO里的;</p>
</li>
<li>
<p>重复电荷转移的过程,直到采样电容Cs上的电压达到它说连GPIO的VIH门限值;</p>
</li>
<li>
<p>过程重复的次数就反映了待测电极上电容的大小;</p>
</li>
<li>
<p>电极被触摸时,重复次数N减小。</p>
</li>
</ul>
<strong>更多参考资料:</strong>
关于Touch触摸的标准外设库:
<a href="https://www.st.com/en/embedded-software/stm32-standard-peripheral-libra…;
<center><img src="http://mcu.eetrend.com/files/2022-08/wen_zhang_/100563274-267147-6.png&…; alt=“单片机的GPIO,如何实现触摸按键的功能?" /></center>
官方提供的一套关于Touch文档,值得参看:
<a href="https://www.st.com/content/ccc/resource/technical/document/user_manual/…;
作者:strongerHuang
来源:嵌入式专栏
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。