基于STM32F405RGT6的四通道测温系统设计:原理图解析与关键问题剖析

STM32F405RG核心板-原理图-1805M.pdf 该资源是我做飞控时参考的原理图,芯片是STM32F405RGT6,经过我的亲身做板实验,安全可靠,且它全部引脚均有详细说明,可以直接复制到自己的原理图。 立即下载

1. 项目需求与设计思路

最近接了个工业测温的项目,需要用STM32F405RGT6做四通道温度采集系统。客户要求挺具体的:每个通道都要独立控制开关,能监测温度、电流和电压数据,还要上传到上位机。电压输出范围要可调(24V和28V两组),最关键的是要在-40℃环境下稳定工作120天!这低温要求真是考验硬件设计的功底了。

我先琢磨了一下整体架构。核心是用STM32F405RGT6做主控,这款芯片性价比很高,自带多路ADC和通信接口,正好满足四通道采集需求。温度传感器选了车规级的HTG3515CH,湿度输出是电压信号,温度测量用NTC热敏电阻。电流采样用0.1Ω/2W的采样电阻,电压采样用电阻分压加运放处理。最头疼的是MOS驱动部分,因为STM32的IO电压只有3.3V,直接驱动大电流MOS管会出问题,后来用了施密特触发器方案才解决。

2. 硬件选型关键点

2.1 主控芯片选择

STM32F405RGT6是我最终选定的主控芯片。这款芯片有3个12位ADC,最多18个通道,采样速率能达到2.4MSPS,完全满足四通道同时采样的需求。它还有4个USART接口,可以同时跟上位机通信和调试输出,特别适合这种多通道数据采集场景。

我在选型时比较过F103和F407系列,F405的性价比最合适。它的工作温度范围是-40到85℃,符合项目的低温要求。256KB的Flash和64KB的RAM也足够存储程序和数据处理。最让我满意的是它的ADC性能,在低温环境下依然能保持很好的线性度,这对温度测量的准确性至关重要。

2.2 运放选型与设计

模拟信号处理部分用了轨对轨运放LM358。为什么要用轨对轨?因为普通运放的输出范围会比电源电压小1-2V,而我们的信号范围经常接近电源电压,用普通运放会导致信号削顶。轨对轨运放的输出可以非常接近电源电压,这样才能保证ADC采样的准确性。

在实际调试中,我发现运放的供电电压也很关键。最初用的5V供电,但后来发现有些信号幅度接近5V,普通运放输出最高只能到3.5V左右,会丢失信号细节。换成轨对轨运放后,输出可以到4.9V,几乎接近电源电压,这样ADC就能采集到完整的信号波形。

2.3 传感器选型

温度传感器用了HTG3515CH,这是车规级的温湿度传感器。选择它主要是因为它的温度范围符合-40℃的要求,而且输出是模拟电压信号,处理起来比较简单。湿度输出是1.2V-3.5V对应10%-95%湿度,直接用ADC采集就可以。温度测量用内置的10K NTC热敏电阻,通过测量电阻值来换算温度。

电流采样电阻选了0.1Ω/2W的金属膜电阻。计算过功率损耗:3A电流时功耗是0.9W,留了足够的余量。电阻精度选了1%,这样电流测量误差可以控制在2%以内。在实际测试中,发现电阻的温度系数也很重要,普通电阻的温度系数太大,低温下阻值变化会导致测量误差,后来换了温度系数更小的电阻才解决。

3. 电源电路设计

3.1 电源架构设计

电源部分采用了三级转换方案:28V→5V→3.3V。输入28V先经过防反接二极管,用的是SS34肖特基二极管,压降只有0.3V,比普通二极管的0.7V损耗更小。然后经过DC-DC降压到5V,给运放和外围电路供电。最后用LDO降到3.3V给STM32供电。

为什么不用DC-DC直接降到3.3V?因为DC-DC的噪声比较大,而STM32的ADC对电源噪声很敏感。用LDO虽然效率低一些,但能提供更干净的电源,保证ADC采样精度。在实际测试中,LDO输出的纹波只有2mV,而DC-DC的输出纹波有20mV,验证了这个设计的必要性。

3.2 低温环境下的电源稳定性

低温下的电源稳定性是个大挑战。普通电解电容在-40℃下容量会急剧下降,导致电源滤波效果变差。我全部用了陶瓷电容和钽电容,这些电容的低温特性更好。DC-DC芯片也选了工业级的,支持-40℃工作温度。

在测试中发现,低温下LDO的压差会增大,原本0.2V的压差在-40℃时会增加到0.5V。所以设计时留了足够的余量,5V转3.3V的LDO输入电压至少保证在4V以上。实际测量显示,最坏情况下5V电源会降到4.8V,仍然满足LDO的要求。

4. 信号采样电路详解

4.1 电压采样设计

电压采样用了电阻分压方案。28V输入用10K和1K电阻分压,分压比是11:1,采样电压是2.54V。为什么用这么高的电阻值?是为了减小功耗,10K电阻上的电流只有2.8mA,功耗约0.08W。如果用1K电阻,功耗会达到0.8W,电阻就会发烫。

分压后接了电压跟随器,用LM358实现。电压跟随器的作用是隔离采样电路和ADC输入,避免ADC的输入阻抗影响采样精度。STM32的ADC输入阻抗约10KΩ,如果不加跟随器,会与分压电阻并联导致分压比变化,产生测量误差。

4.2 电流采样设计

电流采样是在地线上串接0.1Ω电阻,测量电阻两端的电压。3A电流时电压是0.3V,用运放放大10倍到3V,正好适合ADC采集。运放用了同相放大电路,输入阻抗高,不会影响采样电阻的工作。

最初用的放大倍数是20倍,结果发现最大输出会超过3.3V,导致信号削顶。重新计算后改为10倍放大,留了足够的余量。运放的电源用了5V,这样输出范围是0-4.9V,完全覆盖0-3V的信号范围。

4.3 温度信号处理

温度测量用了NTC热敏电阻,电阻值随温度变化。用10K电阻与NTC串联,接3.3V电源,测量NTC上的分压。在-40℃时NTC电阻是195.6K,分压约3.2V;在100℃时电阻是0.785K,分压约0.25V。这样整个温度范围内的电压变化很大,ADC能很好区分。

在软件中需要用查表法将电压值转换为温度值。我先计算了每个温度点对应的电压值,做成表格存储在Flash中。ADC采样后通过查表和线性插值得到温度值,这样比用公式计算更快更准确。

5. MOS驱动电路设计

5.1 MOS驱动挑战

最大的挑战是STM32的IO电压只有3.3V,而大多数MOS管的完全导通需要4.5V以上的Vgs电压。虽然有些低压MOS管标称3.3V可以导通,但实际测试发现,在3.3V驱动下导通电阻很大,通过3A电流时压降有0.5V,功耗1.5W,MOS管烫得根本不能摸。

试过好几款标称3.3V驱动的MOS管,实际表现都不理想。后来决定用施密特触发器方案,将驱动电压升到8V左右,这样MOS管可以完全导通,导通电阻只有8.9mΩ,3A电流时功耗不到0.1W,温升很小。

5.2 施密特触发器驱动方案

施密特触发器用了74HC14,工作电压5V。STM32的PWM信号先经过74HC14整形,然后通过三极管电平转换到8V驱动MOS管。当PWM为高时,三极管导通,MOS管栅极被拉低;PWM为低时,三极管截止,电阻分压产生8V驱动电压。

这个方案的优点是驱动电压稳定,不受电源波动影响。测试中发现,即使电源电压从24V变化到28V,驱动电压始终保持在8V左右,MOS管工作状态很稳定。而且74HC14的施密特特性可以消除信号毛刺,提高抗干扰能力。

5.3 散热设计

虽然MOS管的功耗很小,但通过3A电流时还是会有温升。PCB布局时在MOS管下面加了大的铜皮,并且打了多个过孔到底层帮助散热。实测在28V/3A工作条件下,MOS管温度比环境温度高15℃,完全在安全范围内。

每个通道的MOS管分开布置,避免热集中。四路同时工作时,板子上的热量分布比较均匀,没有出现局部过热的情况。连续工作24小时后测量,各点温度都很稳定。

6. 通信接口设计

6.1 USART配置

用了两个USART接口,USART1用于与上位机通信,USART2用于调试输出。波特率都设为115200,8位数据位,无校验,1位停止位。USART1用了硬件流控制,RTS和CTS信号都接上,保证大数据量传输时不丢数据。

在软件上做了数据校验和重传机制。每个数据包加上CRC校验,如果校验失败就请求重发。实测这种机制在长线传输时很有效,即使有干扰也能保证数据正确性。

6.2 I2C接口设计

I2C接口用于扩展IO和连接传感器。用了PCA9546ADR作为I2C开关,可以同时连接多个I2C设备。I2C总线加了2.2K上拉电阻,这个阻值是在速度和功耗之间权衡的结果。电阻太小功耗大,电阻太大上升沿太缓,会影响通信距离。

在实际调试中发现,I2C总线的走线长度不能太长,最好控制在20cm以内。如果太长需要减小上拉电阻值,或者加缓冲器。我最后把电阻改为1.5K,这样即使30cm长的走线也能可靠工作。

7. 低温环境下的稳定性措施

7.1 元器件选型

所有元器件都选了工业级,支持-40℃工作温度。特别是电容,普通电解电容在低温下会失效,全部用了陶瓷电容和钽电容。晶振也选了工业级的,低温下频率偏移很小,保证通信波特率准确。

电阻选了金属膜电阻,温度系数小。普通碳膜电阻的温度系数有500ppm/℃,而金属膜电阻只有50ppm/℃,低温下的阻值变化小,不会影响采样精度。

7.2 PCB设计注意事项

PCB用了2oz铜厚,比标准的1oz铜厚更耐大电流。电源线宽2mm,可以通过3A电流。每个通道的电源线分开布置,减少相互干扰。在MOS管和采样电阻下面加了散热焊盘,通过过孔到底层帮助散热。

板子四周加了安装孔,用于固定和散热。测试中发现,如果板子悬空,低温下容易产生振动,导致连接器接触不良。用螺丝固定后这个问题就解决了。

8. 实际调试中的问题与解决

8.1 ADC采样精度问题

最初测试发现ADC采样值跳动很大,有20-30个LSB的噪声。检查发现是电源噪声导致的,后来在ADC参考电压引脚加了10μF钽电容和0.1μF陶瓷电容并联滤波,噪声降到3-4个LSB。

还发现采样时间设置太短,导致采样不完整。STM32的ADC采样时间需要根据信号源阻抗来设置,我们的信号源阻抗约10KΩ,采样时间需要设置到239.5个周期,这样采样才充分。

8.2 低温启动问题

在-40℃测试时,发现有时无法启动。排查发现是DC-DC芯片的启动电压变高了,常温下16V就能启动,低温下需要18V以上。后来在电源输入端加了预充电电路,先用小电流给电容充电,电压达到18V后再开启DC-DC,解决了低温启动问题。

8.3 通信干扰问题

在四路同时工作时,发现USART通信有时会出错。用示波器测量发现,当MOS开关切换时,电源上会有毛刺,干扰了USART通信。后在电源输入端加了π型滤波,并且USART线路用了屏蔽线,问题得到解决。

9. 软件设计要点

9.1 多通道采样调度

用了DMA加ADC扫描模式,四路通道自动连续采样。设置好采样序列后,ADC会自动按顺序采样各个通道,采样结果通过DMA传到内存数组,不需要CPU干预。这样CPU可以处理其他任务,提高系统效率。

采样数据用了滑动平均滤波,每个通道保存最近8次采样值,求平均后作为最终结果。这样既保证了实时性,又抑制了噪声。

9.2 温度补偿算法

发现了ADC本身也有温度系数,低温下增益会变化。做了温度补偿算法,用片内温度传感器监测ADC温度,根据温度值修正采样结果。修正后

STM32F405RGT6 原理图+PCB STM32F405 原理图+PCB,已开板、焊接、跑程序验证过,干货,奉献给需要的同学,需要代码的,给个好评,留个邮箱 立即下载

相关推荐

STM32F405RGT6原理图和PCB库

STM32F405RGT6原理图库以及PCB库,TQFP64~

STM32F405RGT6引脚定义及部分引脚说明

STM32F405RGT6引脚定义及部分引脚说明

2201_75316751的博客 2万+

STM32F405RGT6主控板电路设计(包含原理图、PCB、封装库文件)

STM32F405RGT6主控板电路设计(包含原理图、PCB、封装库文件)

FOC系列(五)----STM32F405RGT6控制板焊接与初步编写代码

首先祝大家新年快乐,因为我也快放假了,驱动板只能是开学之后再去测试了,本篇博客应该是本专栏。声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。STM32接收到指令会显示速度的波形(图片看不出来,所以波形不是很明显)今天刚刚焊接起来,测试时出现了一点问题,就是在使用keil下载时会。focfb->STM32显示反馈的数据,比如电流、转速、角度、转矩。setpid->设置PID的参数(目前还不成熟,后续开发)其实也没有做什么特殊的设置,然后就好了…,对后续的开发肯定有用。

我的博客 4025

STM32F405RGT6单片机设计主控板ALTIUM设计原理图PCB+封装库文件.zip

STM32F405RGT6单片机设计主控板ALTIUM设计原理图PCB+封装库文件,2层板设计,Altium Designer 设计的工程文件,包括原理图及PCB文件,可以用Altium(AD)软件打开或修改,可作为你产品设计的参考。

STM32F405RGT6最小系统核心板AD设计硬件原理图+PCB+封装库文件.zip

STM32F405RGT6最小系统核心板AD设计硬件原理图+PCB+封装库文件,2层板设计,大小为50x50mm, 双面布局布线,AD09设计的工程文件,包括完整的原理图和PCB文件,已制板验证,可以做为你的设计参考。

撸一遍STM32最小系统板

采样的MCU型号为STM32F405RGT6,目前这款芯片价格便宜性能好。设计一个控制板。

sy243772901的博客 2万+

STM32F405RGT6主控板 原理图和PCB-电路方案

STM32F405RGT6主控板参数: 板子尺寸:70mmx60mm 供电电压24V,内有24V转5V,5V转3.3V模块 SWD接口 CAN总线通信接口接口 遥控DBUS接口 串口调试接口 PWM输出接口 附件包含了STM32F405RGT6主控板原理图和PCB,使用AD软件打开。 PCB截图: 原理图:

SimpleFOC移植STM32(七)—— 移植STM32F405RGT6

SimpleFOC移植STM32

loop222的博客 1万+

IGV实战指南:从数据导入到Peak可视化的全流程解析

本文提供了一份IGV实战指南,详细解析了从数据导入到Peak可视化的全流程。内容包括软件安装、参考基因组加载、测序数据处理、信号调整以及如何精准定位和可视化Peak区域,并分享了导出出版级矢量图的高级技巧,帮助用户高效完成基因组数据可视化分析。

weixin_29212867的博客 150

Codex 命令行高效操作指南

本文详细介绍了Codex命令行工具的高效使用方法,包括安装配置、核心参数解析和实战技巧。通过`codex complete`、`codex explain`等指令,开发者可以快速生成代码、调试错误和重构项目,显著提升开发效率。特别推荐使用`--temperature`和`--max-tokens`参数优化生成结果。

weixin_29201313的博客 532

Odrive STM32F405配置说明

通过Odrive V3.6版本电路板来编写自己电机驱动软件,以下MCU部分的Cubemax配置。

qq_28149763的博客 7885

Ubuntu技巧-Ubuntu远程访问之SSH反向代理

💡大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、互联网和自媒体。要把内网的一台的Ubuntu服务器让外面也能访问,总共有三种可行的方案,前面已经介绍了两种方式,今天就来介绍更健壮稳定的方式——ssh反向代理。大概的框架图如下,今天就从服务器购买到设置,手把手的教程,让你花费100块以内,就拥有一个强大的「云服务器」。

可夫小子的频道 1153

STM32F405+MPU6050

1历时快一月的STM32F405+MPU6050(以下简称震动板)调试通了,本打算今天放弃的,使用控制电路来实现目前自己项目所需要的功能,控制电路如下: 但是说放弃,觉得还是再试最后一下吧,整体过程遇到问题及解决如下: (1)自己用的是正点原子的mpu6050例程,只将mpu6050例程的串口1改成了串口6,在开发板上可以正常运行,匿名四轴也可以接受数据,但是在震动板上,没有数据,且程序再whil...

weixin_42694185的博客 3067

智能网联汽车电子电气架构(下)

从资产的表现形式, 可以分为数据、 软件、 硬件、 服务等, 而从需要保护的业务过程和活动、 所关注信息的角度, 资产类型可包括基于 ECU 的控制功能、 与特定车辆相关的信息、 车辆状态信息、 用户信息、 配置信息、 特定的软件、 内容等。面向新一代 EEA 的安全需求, 基于芯片提供的 OTP, 或SHE\HSM 的安全存储能力, 实现系统关键数据(身份、 密钥等关键信息) 的安全存储, 保证系统的关键数据不被盗取、 破坏、 改写。结合攻击者的动机与识别出的系统用例, 分析对汽车电子系统可能的攻击。

m0_58838529的博客 1473

群晖如何安装软路由OpenWrt/iStoreOS作为旁路由(含网络设置、设置密码、还原出厂设置等linux命令ipk包)

openwrt的固件。

XiaoqiangClub的博客 7023

STM32F405RGT6单片机原理图、PCB免费分享

做机创比赛时画的板子,比到一半因为疫情回家,无后续,,,已打板验证过,使用stm32f405rgt6做主控。

qq_37812160的博客 1289

rk3588 适配音频解码芯片 ALC5616

在 RK3588 的高性能方案中,选择 **ALC5616**(来自 Realtek 瑞昱)通常意味着项目更侧重于**音频性能的稳定性**以及**全球供应链的通用性**。

weixin_35723192的博客 147

FOC系列(七)----FOC设计要点详解和基于STM32F405RGT6&AS5600&DRV8301/DRV8313驱动无刷直流电机

一、硬件部分:设计、焊接控制驱动一体板声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。写在前面:这篇博客距离上一篇已经两周了,上班是真不如上学自由了,白天没时间搞,只能晚上搞搞。上周用了三天晚上把控制驱动一体板画了出来,周四晚上下单,周六就到了。但是缺少电源、电烙铁、万用表这些工具,不得不一口气下单十几个订单,购买了这些玩意(花了我千把块大洋)。

我的博客 2411

Transformer-LSTM预测 | 基于Transformer-LSTM的多变量单步时间序列预测(Matlab)

Transformer-LSTM预测 | 基于Transformer-LSTM的多变量单步时间序列预测(Matlab)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 192

微信小程序、H5微信公众号网页JSAPI:解决报错requestMerchantTransfer:fail:internal error(使用wx.requestMerchantTransfer错误)

如何解决requestMerchantTransfer:fail:internal error,微信小程序wx.requestMerchantTransfer报错,微信公众号H5网页使用jssdk调用wx.requestMerchantTransfer报错,JSAPI调起用户确认收款报错errMsg:“requestMerchantTransfer:fail:internal error“,微信小程序/H5 调起确认收款界面,JSAPI调起用户确认收款,微信公众号(H5),用户发起提现,商家转账给用户,用户

✅ 精选推荐文章 4975

3步打造终极随身游戏库:Playnite便携版完全配置指南

你是否经常在不同的电脑上玩游戏?家里、公司、朋友家,每台设备上的游戏库都分散凌乱,游戏进度无法同步,安装游戏还要反复折腾权限?Playnite便携版就是你的终极解决方案!这款开源游戏库管理工具让你在U盘或移动硬盘中创建一个完全自包含的游戏中心,无论走到哪里,都能随身携带你的完整游戏库。本文将为你详细介绍如何快速部署、同步和优化你的随身游戏库。 ## 场景一:快速部署随身游戏中心 **问题**:

gitblog_09790的博客 500

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【免费下载】 探索STM32F405RGT6:原理图与PCB资源推荐

探索STM32F405RGT6:原理图与PCB资源推荐 【下载地址】STM32F405RGT6原理图与PCB资源下载 STM32F405RGT6 原理图与PCB资源下载本仓库提供了一个STM32F405RGT6的原理图和PCB文件的下载资源 ...

gitblog_09722的博客 449

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

探索STM32的世界:STM32F405RGT6原理图与PCB设计宝藏

探索STM32的世界:STM32F405RGT6原理图与PCB设计宝藏 【下载地址】STM32F405RGT6原理图与PCB资源下载 STM32F405RGT6 原理图与PCB资源下载本仓库提供了一个STM32F405RGT6的原理图和PCB文件的下载资源 ...

gitblog_09801的博客 451

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

基于STM32F405RGT6的四路测温采集-原理图分析&学习中遇到的问题

基于STM32F405RGT6的四路测温采集-原理图分析

m0_56765931的博客 2144
上一篇: 从零构建:在Android嵌入式设备上驱动I2C外设的工程思维与实践陷阱
下一篇: 基于STM32与霍尔传感器的电机状态监测与远程预警系统实现
linux6sysadmin
博客等级 码龄4年 59粉丝 1615原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值