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 通信设备。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值