文章目录
前言
送给大学毕业后找不到奋斗方向的你(每周不定时更新)
中国计算机技术职业资格网
上海市工程系列计算机专业中级专业技术职务任职资格评审
很多时候我们做stm32硬件设计的时候都是直接用以前的工程将最小系统直接复制过来使用,只需要修改IO脚就好,但是为什么要这么设计却一知半解,今天去了解一下除IO口外其他引脚的功能作用。包括(VBAT, VDD, VSS, VDDA, VSSA, VREF+, VREF-,BYPASS_REG,VCAP, PDR_ON, BOOT0, BOOT1, NRST)。
1、VBAT引脚(备用电池用)
VBAT:备份区供电电压,1.65V≤VBAT≤3.6V。
如下图RM0090手册中记载,
(1)如果应用中没有使用外部电池,VBAT必须连接到VDD引脚上。
(2)如果没有外部电池,这个引脚必须和100nF的陶瓷电容一起连接到VDD电源上
(3)在VDD上升阶段(tRSTTEMPO)或者探测到PVD之后,VBAT和VDD之间的电源开关仍会保持连接在
VBAT。在VDD上升阶段,如果VDD在小于tRSTTEMPO的时间内达到稳定状态(关于tRSTTEMPO可参考数
据手册中的相关部分),且VDD > VBAT + 0.6V时,电流可能通过VDD和VBAT之间的内部二极管注
入到VBAT。
2、PDR_ON引脚(芯片复位用)
如下图RM0090手册中记载,开启后,上电过程和调电过程,只要电压小于1.8V开始复位,如果给MCU供电比较稳定3.3V,直接接高电平以开启内部电源监视器。如果MCU是在低压1.8V左右工作时,接低电平以关闭内部电源监视器,可防止供电波动时不断地引起POR/PDR复位。
PDR是掉电复位的意思,那么PDR_ON引脚主要是控制开启关闭内部上电/掉电复位的。如果关闭了内部上电/掉电复位,则应该接一个外部电源监视器。
内部复位关闭以后会影响到如下功能:
-
内部的上电/掉电复位失能。
-
欠压复位(BOR)电路必须禁用。
-
嵌入式可编程电压检测(PVD)功能失能。
-
VBAT功能不再可用,并且VBAT要接到VDD引脚。
在STM32F407IG这款微控制器中,PDR_ON和NRST引脚都可以用于复位操作,但它们之间存在一些差异。以下是它们的主要区别:
-
功能:
- PDR_ON(Power Down Reset):这是一个低功耗复位功能,通常用于在低功耗模式下唤醒微控制器。当PDR_ON引脚被拉低时,微控制器会从低功耗模式中唤醒并执行复位操作。
- NRST(Normal Reset):这是一个正常的复位引脚,用于在任何情况下对微控制器进行复位操作。当NRST引脚被拉低时,微控制器会执行复位操作。
-
复位方式:
- PDR_ON复位:这种复位方式通常用于从低功耗模式中唤醒微控制器。在这种情况下,微控制器会先从低功耗模式中唤醒,然后执行复位操作。
- NRST复位:这种复位方式不依赖于微控制器的当前状态,无论微控制器处于何种模式,只要NRST引脚被拉低,微控制器就会执行复位操作。
-
应用场景:
- PDR_ON复位:在实际工程中,PDR_ON复位通常用于低功耗应用,例如电池供电的设备。在这些应用中,微控制器需要在低功耗模式下运行,同时能够快速响应外部事件。
- NRST复位:NRST复位在各种应用中都非常常见,无论是低功耗应用还是高性能应用,都可以使用NRST引脚进行复位操作。
-
对芯片的影响:
- PDR_ON复位:由于PDR_ON复位依赖于低功耗模式,因此在某些情况下,使用PDR_ON复位可能会导致微控制器从低功耗模式中唤醒的时间较长,从而影响系统性能。
- NRST复位:NRST复位对芯片的影响较小,因为它不依赖于微控制器的当前状态,可以快速执行复位操作。
3、VDD引脚(数字电源用)
VDD是数字电源引脚,用于提供芯片的数字电源。VDD:D=device 表示器件的意思, 即器件内部的工作电压;VDD通常连接到电源正极,提供芯片的工作电压。在STM32最小系统中,将VDD连接到3.3V电源可以提供适当的工作电压。而在VDD引脚上接一个104电容再接地的作用是为了滤除电源线上的噪声和稳定电源电压,以确保单片机的正常运行。一般来说VDD和VDDA使用同一个电源供电。
4、VDDA引脚(模拟电源用)
VDDA是模拟电源引脚。VDDA通常连接到模拟电源,用于提供芯片内部模拟电路的工作电压。在STM32最小系统中,将VDDA连接到合适的模拟电源电压可以确保模拟电路的正常运行。VDDA引脚上也接一个电容再接地,以滤除模拟电源线上的噪声,保证模拟电路的稳定性和精确性。一般来说VDD和VDDA使用同一个电源供电。
5、VSS和VSSA引脚(电路板地)
就是GND,VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压。VSS引脚是芯片的地(Ground)引脚,用于提供电路的参考地,画原理图时都连GND就行。
6、VREF+和 VREF-引脚(ADC和DAC用)
VREF+ 是 ADC 和 DAC 的输入参考电压,1.8V≤VREF+≤VDDA。此组引脚在100个以上引脚的封装上才会有。 使能后,它也是内部参考电压缓冲器的输出。当不使用 ADC 和 DAC 时,VREF+可以接地,VREF-必须始终等于 VSSA。
由于系统电压会波动,而我们有些功能对ADC采集精度的要求较高,则会专门设计参考电源电路。如果对精度要求没那么高,VREF+直接接到VDDA上就好。
VREF- 和 VREF+ 引脚并非在所有封装中都可用。 如果封装上未提供它们,则它们在 MCU 内部分别与 VSSA 和 VDDA 相连。
7、BYPASS_REG引脚(内部调压器使能)
在有此引脚的封装上,此引脚接地可启用内部稳压调节器,没有引出此脚的芯片,内部默认启动稳压调节器。
当BYPASS_REG引脚连接到VDD时,内部LDO被旁路,需要外部提供稳定的1.2V电源;
当BYPASS_REG引脚连接到VSS时,内部LDO启用,自动生成1.2V电压。这个选择提供了灵活性,使我们能够根据具体的系统需求来配置电源。
8、VCP1/VCAP2引脚(内部调压器滤波)
- BYPASS引脚功能说明
BYPASS引脚用于控制内部电压调节器的旁路模式。当BYPASS引脚连接到VDD时,内部LDO被旁路,VCAP1和VCAP2引脚需要提供外部稳定的1.2V电源。当BYPASS引脚连接到地(VSS)时,内部LDO启用,内部调节器会自动生成1.2V电压。 - 连接方式
启用内部LDO:将BYPASS引脚连接到VSS。在这种模式下,微控制器内部的LDO会提供1.2V电压,VCAP1和VCAP2引脚需要外接适当的去耦电容(通常为2.2µF的陶瓷电容)。
旁路内部LDO:将BYPASS引脚连接到VDD。在这种模式下,VCAP1和VCAP2引脚需要由外部提供稳定的1.2V电源。 - 电源设计考量
使用内部LDO(BYPASS接地):
VCAP1和VCAP2需要连接适当的去耦电容,这些电容通常为2.2µF的低ESR陶瓷电容。
确保电容连接尽可能靠近微控制器引脚,以提供最佳的去耦效果。
旁路内部LDO(BYPASS接VDD):
需要设计外部1.2V电源,并确保其稳定性和足够的电流供应。
外部电源需要接入VCAP1和VCAP2引脚,且去耦电容仍然需要连接。 - 外部电源的选择
如果选择旁路内部LDO(即BYPASS引脚接VDD),需要选择合适的外部1.2V电源:
确保外部电源能够提供足够的电流,满足STM32F407在运行过程中的需求。
外部电源的纹波和噪声需要控制在微控制器可接受的范围内,以避免影响系统稳定性。 - 调试与验证
无论选择哪种模式,都需要对电源和BYPASS引脚的设计进行充分的测试和验证:
测量VCAP1和VCAP2引脚的电压:确保在不同工作条件下电压稳定。
检查电源启动顺序:确保在上电和复位过程中,BYPASS引脚和相应的电压供电正确。
测试系统性能和稳定性:在实际应用中测试系统的性能和稳定性,确保电源设计不会影响微控制器的正常运行。 - 设计实例
假设设计中使用内部LDO:
将BYPASS引脚直接连接到地。
在VCAP1和VCAP2引脚上各连接一个2.2µF的陶瓷电容,电容尽可能靠近引脚放置。
如果设计中选择旁路内部LDO并使用外部1.2V电源:
将BYPASS引脚连接到VDD。
确保外部1.2V电源能够提供足够的电流,连接到VCAP1和VCAP2引脚,同时在这两个引脚上各连接一个2.2µF的陶瓷电容。
通过合理设计和验证,可以确保APM32F407微控制器在不同电源配置下的可靠性和稳定性。
9、BOOT0和BOOT1引脚(启动模式用)
我们一般会把自己boot程序写到flash中,所以设计电路时只将BOOT0接地就可以了。而BOOT1可以当作普通IO口使用。
1、Main Flash memory
是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。
2、System memory
从系统存储器启动,这种模式启动的程序功能是由厂家设置的。一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤:
Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader
Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash
Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动
可以看到,利用串口下载程序还是比较的麻烦,需要跳帽跳来跳去的,非常的不注重用户体验。
3、Embedded Memory
内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,再将程序下载到Flash中。
要注意的是,一般不使用内置SRAM启动(BOOT1=1,BOOT0=1),因为SRAM掉电后数据就丢失。多数情况下SRAM只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到SRAM中诊断板上的其他电路,或用此方法读写板上的Flash或EEPROM等。还可以通过这种方法解除内部Flash的读写保护,当然解除读写保护的同时Flash的内容也被自动清除,以防止恶意的软件拷贝。
但是由于下载电路采用一键下载方案,如下图所示,所以我们只需要在刚开始的时候就设置BOOT0/BOOT1都为0即可,后面不需要再修改了
10、TAMPER引脚(防拆机用)
BKP(Backup Registers)备份寄存器
BKP控制寄存器用来备份、管理侵入检测和RTC校准功能
BKP可用于存储用户应用程序数据。当VDD(2.0 ~ 3.6V)电源被切断,他们仍然由VBAT(1.8~3.6V)维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位
1.TAMPER引脚产生的侵入事件将所有备份寄存器内容清除
2.RTC引脚输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲