×
单片机 > 单片机程序设计 > 详情

stm32启动方式+上(下)拉电阻 二合一

发布时间:2020-08-26 发布时间:
|

最近做stm32项目,纠结过其启动方式。 
看到篇不错的文章,转载一下。原文格式不太好,内容也有很多奇怪的地方(尤其是第二篇,就先认为原文是原创,只是作者的思路我不懂吧),都一一删改。想看原文的朋友链接如下: 
http://www.ithao123.cn/content-3065243.html Duanxx的STM32学习: 启动模式,BOOT0和BOOT1详解 
http://bluefish.blog.51cto.com/214870/1239098 上拉电阻与下拉电阻的作用

所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。

  • Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader

  • Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中

  • Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动 
    可以看到,利用串口下载程序还是比较的麻烦,需要跳帽跳来跳去的,非常的不注重用户体验。

  • Embedded SRAM 内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。 
    假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,在将程序下载到SRAM中。

    因此,比较常见的选择方式是BOOT0接地,当然啦,如果自己画stm32系统板的话,最好也要留下其他两个启动方式。对于大型程序使用SRAM进行调试还是很有必要的。

    下面讲一下上拉电阻与下拉电阻的区别: 
    上拉电阻就是把不确定的信号通过一个电阻钳位在高电平,此电阻还起到限流的作用。同理,下拉电阻是把不确定的信号钳位在低电平。上拉电阻是指器件的输入电流,而下拉指的是输出电流。 
    那么在什么时候使用上、下拉电阻呢? 
    1、当TTL电路驱动CMOS电路时,如果TTL电路输出的高电平低于CMOS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。 
    2、OC门电路必须加上拉电阻,以提高输出的搞电平值。 
    3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。 
    4、在CMOS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻降低输入阻抗,提供泄荷通路。 
    5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限,增强抗干扰能力。 
    6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。 
    7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。 
    另外,上拉电阻阻值的选择原则包括: 
    1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。 
    2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。 
    3、对于高速电路,过大的上拉电阻可能边沿变平缓。 
    综合考虑以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理

    关于上拉电阻,看图。

    作为输入接VCC等于1,接GND=0。 
     
    如果按键短路(按下)电阻为零,按键按下,Out=0,当按键断开,Out=?显然当Out悬空输出VCC,这可以用仪表测量。这个VCC就是靠R1“上拉”产生的,顾名思义,R1就是上拉电阻。上拉电阻的大小,取决于输出接负载的需要,通常逻辑电路对高电平输出阻抗很大,要求输出电流很小,在上拉电阻上压降可以忽略,当然上拉电阻不能太大,否则就不能忽略了。

    实际电路还有这种结构 
     
    这里的R1也是上拉电阻。

    单片机P0口输出结构一部分电路类似下图,实际可能用的是场效应管。 
     
    当Q1,Q2分别导通,可以对外输出0和1,当Q1,Q2都不导通时?要想输出1,咋办?外接上拉电阻!

    为什么要使用拉电阻: 
    一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。

    关于下拉电阻,用得少,道理和上面一样,只不过通过电阻“下拉”到GND。

    这里不再详细说明

    数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似与一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上C拉电阻,也就是说,如果该端口正常时为高电平,C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口平时为低电平。 
    上拉电阻是用来解决总线驱动能力不足时提供电流的。一般说法是拉电流,下拉电阻是用来吸收电流的,也就是灌电流。


    关键字:stm32  启动方式 

    『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

    热门文章 更多
    单片机中高阻态的实质及意义