STM32自己从零开始实操02:输入部分原理图

一、触摸按键

1.1指路

项目需求:

4个触摸按键,主控芯片 TTP224N-BSBN(嘉立创,封装 TSSOP-16),接入到 STM32 的 PE0,PE1,PE2,PE3。

1.2走路

1.2.1数据手册重要信息提炼

1、供电电压使用3.3V

2、各触摸开关的灵敏度由外部电容进行调节(0~50pF)

3、供参考的电路连接图

4、各个引脚的作用及选择

说明:

  1. 下表的选择就是按照上面参考图进行选择
  2. 1 代表连接到电源,0 代表连接到地
引脚功能

选择

LPMB模式:快速模式(1),低功耗模式(0)快速模式(1)
TOG输出类型:直接模式(0),触发模式(1)触发模式(1)
AHLB输出有效电平选择:高(0),低(1)低(1)

OD

输出模式:开漏输出(0),COMS输出(1)开漏输出(0)
MOT1,MOT0选择最大输出时间:120秒/64秒/16秒/无穷大120秒(00)
SM单键/多键输出选择:单键(0),多键(1)单键(0)

1.2.2自己画图

说明:

  1. 将触摸开关替换成普通的开关,按下则接到地,低电平有效输出,作为 STM32 的中断输入。
  2. 调节灵敏度的电容选择 30pF,灵敏度适中。
  3. 滤波电容 C1 的值主要根据调试,0.1uF 的经验值就是延续 LDO 使用的输入/输出电容。
  4. 单片机 GPIO 口内部是 MOS 管组成的推挽电路(不是电阻组成的电路,就不用考虑分压的情况),所以需要电阻进行限流,推荐限流的阻值为 10K。(与最开始的原理图笔记中一致)
  5. 5 红框内的符号为全项目的网络端口,可以将不同页的网络标签关联起来。
  6. 芯片只有 MOT0 一个引脚接地,MOT1  实则为  open 状态,最大输出时间是 16s 。

1.3改进

1.3.1存在的问题

完全按照手册设计的电路,没有注意到一些逻辑上的细节问题。

1.3.2输出模式(TOG)

你当时没有深究的输出模式:直接输出、触发输出

直接输出模式和触发输出模式是 TTP224N-BSBN 芯片的两种输出工作模式。

  • 直接输出模式:在直接输出模式下,当触摸传感器被触摸时,相应的输出引脚立即给出高电平或低电平信号,表示触摸状态的变化。这种模式下,输出信号与触摸动作是同步的,触摸后立即输出信号,适用于实时触摸检测的应用场景。
  • 触发输出模式:在触发输出模式下,当触摸传感器被触摸时,会触发一个触摸事件,并在触发后持续一段时间输出高电平或低电平信号,然后在超时后自动返回到无触摸状态,输出信号返回到默认状态。这种模式下,输出信号持续一段时间,适用于需要触摸事件持续性检测的应用场景

输出模式的选择主要是根据项目的具体需要,老师选择的是直接模式(可能是需要触摸开关认为是中断,松手后处理中断至结束,也符合人体工学),我现在选择的是直接模式(最大输出时间为 16s )。

1.3.3开漏输出和 CMOS 输出(OD)

你企图利用 STM32 GPIO 内部的推挽输入电路搭配你配置的开漏输出电路,实现:

  1. 无按下时,GPIO 口内部的上面的 MOS 管上拉至 VCC
  2. 按下时,GPIO 口内部的上面的 MOS →芯片开漏的下面 MOS ,下拉至 GND。
  3. 过程中,GPIO 口内部的下面的 MOS 管始终关闭。

但是(我的理解):

你忘了按键附近一直有一个滤波电容接地,如果是开漏输出没有按下时也一直隐约输出的是地,谁来提供无按下时输出端的电源(高电平)呢?在无按下时是需要这样一个高电平的。所以

  1. 要么在下图每一个对应圆圈的位置提供一个上拉电阻
  2. 要么选择 COMS 输出(推挽输出,推挽输出内部有自己的 VCC)

我选择 CMOS 输出。

1.3.4数据手册

请详细的看数据手册上的一段原话:

 这一段明确说明:

  1. 直接输出模式(TOG为 0 或者 open 状态下(表格里写 open 状态)),输出端口就可以通过 AHLB 端口设置成高/低电平有效。(也验证前面选择的直接输出模式)

1.3.5改进后的电路

就改变了红框内的内容。


二、数字温湿度传感器

1.1指路

延续使用芯片:SHT30-DIS-B10KS。

1.2数据手册重要信息提炼

1.2.1封装图

1.2.2引脚说明

引脚说明表
PIN名称说明
1SDA串行数据;输入/输出
2ADDR地址引脚;输入;连接到逻辑高或低,不要使其浮动
3ALERT指示报警条件;输出;如果未使用,则必须保持浮动
4SCL串行时钟;输入/输出
5VDD电源电压;输入
6rRESET复位引脚低电平有效;输入;如果不使用,建议左浮置;可以通过阻值大于 2K 欧姆的电阻连接到 VDD 
7R无电气功能;连接到 VSS
8VSS
(1)电源引脚(VDD,VSS)

VDD:2.15~5.5V,典型值 3.3V。
电源引脚必须用一个 100nF 的电容进行去耦,该电容应尽可能靠近传感器放置 。

(2)串行时钟和串行数据(SCL,SDA)

SCL 用于同步微控制器和传感器之间的通信,时钟频率可以在 0~1000kHz 之间自由选择,支持符合 IIC 标准的具有时钟拉伸的命令。

SDA 引脚数据传输,通信频率高达 400kHz 的通信必须符合 IIC 快速模式标准,支持的通信频率高达 1MHz 。

SCL 和 SDA 线都是开漏  I/O,带有到 VDD 和 VSS 的二极管,它们应连接到外部上拉电阻(请参阅接线参考图)

IIC 总线上的设备只能将线路驱动到地,外部上拉电阻(例如 Rp = 10 kΩ)必须拉高信号。在尺寸定位电阻大小时,请考虑总线容量和通信频率(例如,有关更多详细信息,请参见 NXP 的 IIC 手册第 7.1 节)。应注意,上拉电阻可能包含在微控制器的 I/O 电路中,建议根显示的应用电路布线传感器。

(3)ADDR 引脚

通过适当布线 ADDR 引脚,可以选择 IIC 地址(请参阅下表获取相应地址)。

SHT3x-DIS十六进制的 IIC 地址条件
IIC 地址 A0x44(默认值)ADDR(引脚2)连接到逻辑低电平
IIC 地址 B0x45 ADDR(引脚2)连接到逻辑高电平

ADDR 引脚可以连接到逻辑高电平或逻辑低电平。

传感器的地址可以在操作过程中动态更改,方法是切换 ADDR 引脚上的电平。唯一的约束是从 IIC起始条件开始直到通信完成,电平必须保持恒定。这允许将两个以上的 SHT3x-DIS 连接到同一总线上,动态切换需要向传感器提供单独的 ADDR 线。

请注意,IIC 地址通过 IIC 读/写头部的 7 个最高有效位表示,LSB 在读/写头之间切换。默认地址的布线如上表和参考接线图所示。

ADDR 引脚不能漂浮。

请注意,仅 IIC 读/写头的 7 个最高有效位构成 IIC 地址。

(4)ALERT 引脚

警报引脚可以用于连接到微控制器的中断引脚。

引脚的输出取决于 RH/T(相对湿度) 读数相对于可编程限制的值。其功能在单独的应用笔记中进行了解释。

如果不使用该引脚,则必须将其浮空。

当满足警报条件时,引脚切换为高电平。

请注意,根据流过的电流量,可能会发生自加热。如果 Alert 引脚仅用于切换晶体管,则可以防止自加热。

(5)nRESET 引脚

nReset 引脚可用于生成传感器的复位。

可靠触发传感器复位需要至少 1µs 的脉冲持续时间。

如果不使用,建议将引脚浮空或将其连接到 VDD,并且使用电阻值为 R ≥ 2 kΩ 的串联电阻。但是,nRESET 引脚内部通过上拉电阻 R = 50 kΩ(典型值)连接到 VDD。

1.2.3接线参考图

参考电路图

1.3画电路图

说明:

  1. ADDR:不需要选择 IIC 地址,接地。
  2. ALERT:不需要报警,必须悬空。
  3. 电路图没有问题。

三、热敏电阻 NTC 模拟温度传感器电路

3.1传感器电路原理

传感器一般是将物理量转化为电信号,然后进行采集,作为一些反馈等使用。

3.2 热敏电阻 NTC 特性

(1)NTC:片式负温度系数热敏电阻器。

(2)特点:精度一般,一般会有 1~2℃ 的误差,优点是成本非常的低。

(3)封装:有 0402 , 0603,0805,1206 等。(选择 085 这个较大封装的,是希望与空气的接触面更大,减小板子发热等的误差影响)

(4)标称电阻值(Ω):是 25℃ 时的电阻值,有 10k ,50K ,100K 等值。

(5)阻值误差(%):此场景选择使用的是 ±1.0% 误差的。

字母EFGHJKX
阻值公差±0.5±1.0±2.0±3.0±5.0±10.0特殊公差

(6)阻值特性表

不同温度(-55~125℃)下对应不同的阻值,通过阻值就可以推算温度,注意对应关系并不是线性对应的。

故通过阻值推算温度,是做成二维数组的表格,通过查表(查表可以通过二分法或者四分法)的方式知道对应的温度。

3.3 NTC 模拟传感器逻辑

(1) 电路测量值转变过程:25℃ → 10KΩ → 和参考电阻分压后的电压

(2)查二维表格有一个技巧

和参考电阻分压后的电压 ADC 采集后是一个数据,不需要再将数据重新转化成电压,因为电压是模拟量,直接比较数据值比较方便。

(查表时不需要再比较模拟量了,因为模拟量下单片机的执行效率很低,可以比较最后的整形量。)

所以做表格技巧如下:

最后通过拼接成采集值范围的数组,查找对应关系。

3.4 NTC 模拟传感器电路

  1. VDDA_MCU :是单片机的一个模拟接口电压。
                  该电压尽量要稳定一点,因为越稳定采集数据质量越好。
  2. C21:电容滤波,进一步稳定电压 VDDA 。
  3. R25:分压电阻,阻值和 NTC 在常温的电阻值一样。
  4. NTC:热敏电阻,常温下电阻值为 10K。
  5. 电容:稳定分压点电压。
  6. RC 滤波器:此处干扰很小,故该滤波器对电阻、电容没有很高的要求。电阻值为 1K 、10K 均可,电容大小也都可以根据实际情况调试。
  7. 除了硬件之外,软件采集也非常重要,软件采集需要采用一些算法。
    如滤波算法,因为单片机 ADC 本身有误差,硬件采集也存在误差,所以软件采集必须要做好,否则误差可能比较大。滤波算法做得好的话,误差一般能控制在 1~2℃ 以内,可以满足很多场景的需要。

注意点:因为是一边学习一边画的电路原理图,并没有什么错误,但是凭借我对自己的了解,我必然会犯一个错误:在需要连接 VDDA_MCU 作为总电压的地方,我必然提供的是V_3.3V 。

在原理图上搜索可得:如下图,VDDA_MCU 就是 V_3.3V 经过了 3 个不同的滤波电容得到的,原因是 NTC 电路不是像这部分其他有芯片接入的电路,有芯片对供电电源要求不是很高,但是单纯的热敏电阻构成的电路对供电电源要求就非常高了。

四、0-5V 电压输入和 4-20mA 电流输入检测电路

功能:将压力等参数转变成 0~5V 电压信号或者 4~20mA 电流信号的模块。

注意:R27 和 R30 都选比较小阻值的电阻,因为在 32 单片机 AD 口内部有 500K 的对地阻抗,下图电路中相当于 10K 电阻和 500K 电阻的并联,得到的阻值还是接近 10K ,对分压的影响非常小。但是如果使用 100K 的电阻,和 500K 电阻并联之后只有 80K 对分压的影响比较大,影响电路的精度。

电路比较简单,复习听时的笔记即可。

五、预留 SPI 通信的热电偶接口

预留 SPI 通信的热电偶接口,同时这个接口是一个开放的接口,也可以接其他 SPI 通信设备。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值