描述
<h3 style="line-height:2"><span style="font-size:14pt">更新日志</span></h3>
<p style="line-height:2"><span style="font-size:12pt"><span style="color:#000000">2024.7.27首次发布开源项目</span></span></p>
<p style="line-height:2"> </p>
<hr>
<p style="line-height:2"><strong><span style="font-size:14pt">项目说明</span></strong></p>
<p style="line-height:2"><span style="font-size:12pt">制作本项目的初衷是为了独立完成一个软硬件都有的小项目,提高系统设计能力和软件能力。硬件部分参考了参考B站“立创EDA”的视频进行布局规划,走线则是自己独立完成;软件部分,函数参考了官方的语雀文档,软件的整体流程设计则是自己独立规划完成。</span></p>
<p style="line-height:2"> </p>
<hr>
<p style="line-height:2"><strong><span style="font-size:14pt;color:#000000">项目简介</span></strong></p>
<p style="line-height:2"><span style="font-size:12pt">使用两节干电池供电,主控采用STM32G030K6T6。在平时默认为休眠模式,当按下按键后,显示温湿度约2s,显示电池电压约1s,随后恢复休眠模式。</span></p>
<p style="line-height:2"> </p>
<hr>
<p style="line-height:2"><strong><span style="color:#000000;font-size:14pt">硬件部分</span></strong></p>
<p style="line-height:2"><strong><span style="font-size:12pt">1.主控电路</span></strong></p>
<p style="line-height:2"><span style="font-size:12pt"><img src="//image.lceda.cn/oshwhub/16a4ba5e662d416cb9fd27cb4f1bb9d2.png" width="1058" height="487"></span></p>
<p style="line-height:2"><span style="font-size:12pt">给STM32G030K6T6分配引脚标签。</span></p>
<p style="line-height:2"><span style="font-size:12pt">利用磁珠L1对电池电压进行过滤,得到更加纯净的直流电压。</span></p>
<p style="line-height:2"><span style="font-size:12pt">磁珠全程为铁氧体磁珠滤波器,是一种抗干扰元件,滤除高频噪声的效果显著。</span></p>
<p style="line-height:2"><span style="font-size:12pt">磁珠的电路符号就是电感,并且原理相同,只是频率特性不同。</span></p>
<div><span style="font-size:12pt">复位电路原理具体可以参考博客——<a href="https://blog.csdn.net/hxh33321/article/details/124611776" target="_blank">https://blog.csdn.net/hxh33321/article/details/124611776</a></span></div>
<p style="line-height:2"><span style="font-size:12pt">简单来说就是不上电时NRST为低电平,上电后短暂时间内,电容两端电压不会突变,所以NRST还是保持低电平,经历4τ-5τ之后电容充电完成,NRST为高电平,不再对主控电路进行复位,芯片开始正常工作。</span></p>
<p style="line-height:2"><span style="font-size:12pt">这里就需要注意,烧录代码时需要勾选Reset and run,否则就需要拔下电池才能执行新烧录的程序(也可以设计使用按键复位)</span></p>
<p style="line-height:2"><strong><img src="//image.lceda.cn/oshwhub/d2cc344db0cd4d23b8ed07488f529ad1.png" width="559" height="271"></strong></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><span style="font-size:12pt"><strong>2.晶振电路</strong></span></p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/7e29c8367595494ea52b9d19e6739bad.png" width="491" height="288"></p>
<p style="line-height:2"><span style="font-size:12pt">常见的晶振电路,其中的C3、C4为匹配电容,与晶振的参数——负载电容(Load capacitance)、静电容(Shunt capacitance)有关</span></p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/37cd5d5c486f4c9d97218342a446222f.png" width="764" height="271"></p>
<p style="line-height:2"><span style="font-size:12pt">通常取C3、C4为相同容值,容值满足公式:</span></p>
<p style="line-height:2"><span style="font-size:12pt"><img src="//image.lceda.cn/oshwhub/dcb1b6f958f04a9e9f029b2e132e77e8.png" width="306" height="42"></span></p>
<p style="line-height:2"><span style="font-size:12pt">计算得到的匹配电容值 = 23pF,但是官方的B站视频给出的值是18pF,这里存在一些疑惑,希望和大家一起交流。</span></p>
<p style="line-height:2"><span style="font-size:12pt">实际选用的是20pF的匹配电容,但是实际上本项目并没有用到外部晶振,没有体现出电容的误差会造成什么影响。如果设计适合需要时钟功能(RTC),就需要用到外部晶振。</span></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><span style="font-size:12pt"><strong>3.SHT40温湿度传感器模块接口</strong></span></p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/e7b0dd44505348698daf2a392a6e9f41.png" width="517" height="299"></p>
<p style="line-height:2"><span style="font-size:12pt">该部分实际上就是一个1.27mm的弯插母座,用来插接官方推荐的SHT40温湿度传感器模块,只需要注意线的顺序是否正确即可</span></p>
<p style="line-height:2"><span style="font-size:12pt">其中R2、R3是IIC协议要求的上拉电阻,因为IIC协议默认SCL和SDA为高电位,主机和从机通过拉低和释放SDA和SCL进行通信</span></p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/f5fcf1600150487ab6f09fbf191b5ac0.png" width="379" height="185"></p>
<p style="line-height:2"><span style="font-size:12pt">图片来自博客——<a href="https://blog.csdn.net/sinat_15677011/article/details/105035024" target="_blank">I2C总线通信原理与电路设计_i2c 通讯2.8v-CSDN博客</a></span></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><strong><span style="font-size:12pt">4.三态移位寄存器</span></strong></p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/124b7dc895dc4e478408c3fe76a3cb3a.png" width="842" height="482"></p>
<p style="line-height:2"><span style="font-size:12pt">这里使用三态移位寄存器的原因是为了节省引脚,具体如何使用芯片可以参考博客——<a href="https://blog.csdn.net/ReCclay/article/details/78245642" target="_blank">一文搞懂74HC595芯片(附使用方法)_74hc595芯片引脚图及功能-CSDN博客</a></span></p>
<p style="line-height:2"><span style="font-size:12pt">三个滤波电容尽量贴近芯片进行走线</span></p>
<p style="line-height:2"><span style="font-size:12pt">注意SIG_TEST引脚连接的是一个测试LED,所以控制这一个测试LED的操作实际上会放在74HC595的操作里面,而不能直接通过GPIO操作LED</span></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><strong><span style="font-size:12pt">5.共阴极三位数码管</span></strong></p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/8af30b8180224c418836aadad0cfb686.png" width="410" height="491"></p>
<p style="line-height:2"><span style="font-size:12pt">此处的共阴极数码管可以用共阳极的替代(前提是除了共阴共阳之外一切相等),只需要在软件设计里面进行修改即可</span></p>
<p style="line-height:2"><span style="font-size:12pt">本人使用的是共阳极数码管</span></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><strong><span style="font-size:12pt">6.两节5号电池盒+防反接</span></strong></p>
<p style="line-height:2"><span style="font-size:12pt"><img src="//image.lceda.cn/oshwhub/01feb0fdd6ae46c68c65e65d37daf48a.png" width="527" height="460"></span></p>
<p style="line-height:2"><span style="font-size:12pt">BAT_VOL引脚作为ADC输入引脚,可以测量电池电压,可以设计电量显示功能</span></p>
<p style="line-height:2"><span style="font-size:12pt">两节干电池进行串联,实现3V供电</span></p>
<p style="line-height:2"><span style="font-size:12pt">防反接设计依靠控制PMOS管的导通而实现,反接时PMOS管截止,实现保护</span></p>
<p style="line-height:2"><span style="font-size:12pt">具体PMOS管原理可参考博客——<a href="https://blog.csdn.net/chenhuanqiangnihao/article/details/114385700" target="_blank">NMOS和PMOS详解以及电路设计_nmos怎么接在电路里可以当成电容-CSDN博客</a> 或各种模电教材</span></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><strong><span style="font-size:12pt">7.唤醒按键</span></strong></p>
<p style="line-height:2"><span style="font-size:12pt"><img src="//image.lceda.cn/oshwhub/c1f9b9995efc47868bdaeaf136504016.png" width="344" height="121"></span></p>
<p style="line-height:2"><span style="font-size:12pt">该引脚作为外部中断输入引脚,外部中断可将设备从休眠模式唤醒。</span></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><strong><span style="font-size:12pt">8.SWD下载调试接口</span></strong></p>
<p style="line-height:2"><span style="font-size:12pt"><img src="//image.lceda.cn/oshwhub/a59c9b3616bb4843ac8b89347d729765.png" width="413" height="198"></span></p>
<p style="line-height:2"><span style="font-size:12pt">线序可以随意设计,走线方便优先,连接调试器的时候正确连接即可</span></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><strong><span style="font-size:12pt">9.LED测试电路</span></strong></p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/13210cd907b141798cda2ed0061d12f2.png" width="626" height="61"></p>
<p style="line-height:2"><span style="font-size:12pt">用于实现闪灯实验,测试软件能和硬件正常进行通信,硬件有基本的工作能力</span></p>
<p style="line-height:2"> </p>
<hr>
<h3 style="line-height:2"><span style="font-size:14pt">PCB部分</span></h3>
<p><span style="font-size:12pt">本项目PCB走线除电源线和晶振信号线之外,均为正常信号线。</span></p>
<p><span style="font-size:16px">电源线:一般电源线都比正常信号线略宽,在本项目中,正常信号线为10mil,电源线为15mil,实测没有问题。</span></p>
<p><span style="font-size:16px">晶振信号线:外部晶振需要靠近主控芯片进行摆放,目的是减少寄生电容。在官方的视频里面,提到了晶振电路需要禁止铺铜。去网上查阅资料后,有说需要铺铜的,也有说不需要的,个人认为可能和电路频率有关系。因为铺铜实际上影响的是电路的电容,高频和低频的情况下影响程度不同。(自己也不是很理解,欢迎大家一起讨论)本项目因为没有用到外部晶振,所以可以不考虑铺铜问题。</span></p>
<p><span style="font-size:12pt">丝印:在外部接口部分,为了防止出错,需要用丝印做标记,如:</span></p>
<p><span style="font-size:12pt"><img src="//image.lceda.cn/oshwhub/d6a38e444add49a8bc94ab4c401f3fdf.png"></span></p>
<p><span style="font-size:12pt"><img src="//image.lceda.cn/oshwhub/c4163b0cb976419099a64ee4098db61c.png"></span></p>
<p> </p>
<hr>
<h3 style="line-height:2"><span style="font-size:14pt">软件部分</span></h3>
<p><span style="font-size:12pt">源码和工程文件放在附录里面,此处提供程序流程图,具体细节可以参考源码</span></p>
<p><img src="//image.lceda.cn/oshwhub/8098050b9973466981fbd494e159fb18.png" width="347" height="497"> <img src="//image.lceda.cn/oshwhub/0db6e136fc574a179be8c00a82742482.png" width="262" height="500"> <img src="//image.lceda.cn/oshwhub/b77e58feb58742ad908bc556a6b7ed3c.png" width="220" height="491"></p>
<p> </p>
<hr>
<h3 style="line-height:2"><span style="font-size:14pt">元器件</span></h3>
<p><span style="font-size:12pt">和BOM几乎一致,除了共阴极数码管换成了共阳极数码管,没有需要特别注意的地方</span></p>
<p> </p>
<hr>
<p style="line-height:2"><strong><span style="font-size:14pt">附件</span></strong></p>
<p style="line-height:2"><span style="font-size:12pt">附件包含演示视频,因为数码管的刷新是在定时器中断里面实现的,刷新一轮大约需要20ms,所以手机拍摄的效果不好</span></p>
<p style="line-height:2"><span style="font-size:12pt">除此以外,附件包含STM32CubeMX生成的工程文件</span></p>
<p style="line-height:2"> </p>
<hr>
<p style="line-height:2"><span style="font-size:12pt"><strong><span style="font-size:14pt">最后</span></strong></span></p>
<p style="line-height:2">祝大家能够顺利完成项目!</p>
评论(0)