网站建设企业名录,网站设计创新点怎么写,网页原型设计模板,新闻类网站html模板免费下载本质#xff1a;BOOT电路本质上是单片机的引脚
作用#xff1a;BOOT电路的作用是用于确定单片机的启动模式
使用方法#xff1a;在单片机上电或者复位时给BOOT管脚设置为指定电平即可将单片机设置为指定启动模式。
原理#xff1a;单片机上电或复位后会先启动内部晶振BOOT电路本质上是单片机的引脚
作用BOOT电路的作用是用于确定单片机的启动模式
使用方法在单片机上电或者复位时给BOOT管脚设置为指定电平即可将单片机设置为指定启动模式。
原理单片机上电或复位后会先启动内部晶振第四个SysTick时单片机内部电路会将BOOT引脚的值进行锁存也就是保存BOOT引脚的值再根据BOOT引脚的值确定不同的启动模式。
数据手册
数据手册中关于BOOT的相关说明如下图手册为stm32f4xx系列 存储器采用固定的存储器映射其中代码区域起始地址为 0x0000 0000通过 ICode/DCode 总线访问而数据区域起始地址为 0x2000 0000通过系统总线访问。在这种情况下Cortex-M4F CPU 通过 ICode 总线获取复位向量因此只有代码区域通常为 Flash 存储器可以提供自举空间。然而STM32F4xx 微控制器实施了一种特殊机制允许从其他存储器如内部 SRAM进行自举。这意味着即使复位向量存储在 Flash 存储器中STM32F4xx 微控制器也可以通过特殊机制从内部 SRAM 或其他存储器启动和执行程序。这种特殊机制为STM32F4xx微控制器提供了更大的灵活性使其能够从多种存储器区域进行自举而不仅局限于代码区域Flash中。这样的设计可以为开发人员提供更多选择以满足不同应用场景的需求。
STM32F4xx 微控制器中可以通过 BOOT[1:0] 引脚选择三种不同的自举模式。这些引脚提供了控制启动模式的能力允许开发人员在启动时选择不同的启动选项。表 3中列出了这些不同的自举模式包括从不同存储器区域启动或采用不同的引导配置。在不同的自举模式下微控制器会执行不同的启动流程以满足需求。通过适当选择 BOOT[1:0] 引脚的状态组合可以配置 STM32F4xx 微控制器以启动到特定的模式这种灵活性有助于应对不同的应用需求和场景。
在 STM32F4xx 微控制器中复位后在 SYSCLK 的第四个上升沿会锁存 BOOT 引脚的值。这意味着在复位后的一段时间内通常是 SYSCLK 的第四个上升沿系统会稳定 BOOT 引脚的状态并使用这个状态来确定启动的方式。用户可以通过设置 BOOT1 和 BOOT0 引脚的状态来选择所需的自举模式。通过控制这两个引脚的组合状态用户可以指定微控制器在启动时应该从哪个存储器区域如 Flash、SRAM等启动或者采用不同的启动配置选项。因此通过设定 BOOT1 和 BOOT0 引脚用户可以灵活地选择适合其应用需求的启动模式从而实现对 STM32F4xx 微控制器启动行为的控制。
在 STM32F4xx 微控制器中BOOT0 是一个专用引脚而 BOOT1 则是一个与 GPIO 引脚共享的引脚。一旦完成对 BOOT1 的采样并确定了启动模式相应的 GPIO 引脚即可进入空闲状态变为可用于其他用途。这种设计使得在确定启动模式后原本用于选择启动模式的 GPIO 引脚可以释放出来供开发人员用于连接其他外设或执行其他功能。这种灵活性允许用户在启动完成后重用这些引脚以满足不同的应用需求。因此一旦对 BOOT1 引脚进行采样并完成启动模式的选择相应的 GPIO 引脚可以自由地被重新配置和使用而不再限定于启动模式选择用途。这样的设计有助于优化引脚资源的利用并允许开发人员充分发挥 STM32F4xx 微控制器的功能。
在 STM32F4xx 微控制器中当设备退出待机模式时会对 BOOT 引脚进行重新采样。因此在设备处于待机模式期间这些引脚必须保持所需的自举模式配置以确保在退出待机模式后系统能够按照预期的方式启动。一旦启动延迟结束CPU 将会从地址 0x0000 0000 获取栈顶值然后从地址 0x0000 0004自举存储器的起始地址开始执行代码。这意味着在设备重新启动时系统会先获取栈顶值然后从自举存储器的地址处开始执行代码这样确保了系统正确地启动并恢复到正常工作状态。因此在 STM32F4xx 微控制器中对 BOOT 引脚的正确配置和保持与所需的自举模式相关的状态非常重要以确保设备能够顺利退出待机模式并正确启动。系统会按照设定的自举模式配置来执行启动流程从而保证设备在重新启动后能够正常运行。
当STM32F4xx微控制器以SRAM自举方式启动时需要在应用程序初始化代码中重新分配向量表以确保中断服务程序能够正确执行。在这种情况下需要使用NVIC异常及中断向量表和偏移寄存器进行重新分配。 具体做法包括以下步骤 1. 将中断向量表地址设置为SRAM中的新地址。 2. 更新NVIC偏移寄存器的值以确保向量表中的中断向量正确映射到相应的中断服务程序。 通过重新分配向量表可以确保系统能够正确处理中断使应用程序在SRAM自举模式下能够正常运行。这一步是必要的因为在SRAM自举模式下系统不再从Flash等其他存储器中读取中断向量表而是从SRAM中读取所以需要重新分配以确保正确的中断处理流程。
三种启动模式 1主FLASH 芯片内置的Flash。 2SRAM 芯片内置的RAM区就是内存。 3系统存储器 芯片内部一块特定的区域芯片出厂时在这个区域预置了一段Bootloader就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除即它是一个ROM区。这个系统存储器只是帮你通过ISP程序下载hex进去的
从主FLASH启动 其中用于FLASH的地址范围为0x0800 0000~0x080F FFFF 大小为1MB
将主Flash地址0x08000000映射到0x00000000这样代码启动之后就相当于从0x08000000开始。主闪存存储器是STM32内置的Flash作为芯片内置的Flash是正常的工作模式。一般我们使用JTAG或者SWD模式下载程序时就是下载到这个里面重启后也直接从这启动程序。
从系统存储区启动 系统存储区地址范围为0x1FFF 0000~0x1FFF 7A0F大小为30KB
系统存储区实际上存放了一段ST事先写好的BootLoader程序且不可以被修改用于ISP下载也就是串口方式下载当我们将BOOT0拉高BOOT1拉低时也就是系统存储器模式启动单片机会将0x1FFF 0000~0x1FFF 7A0F这段空间映射到0x0000 0000处运行系统内置的BootLoader程序也就是串口下载的程序使用串口将程序下载到FLASH中下载完成之后就将BOOT0拉低重启使用主FLASH的方式运行使用串口下载的程序了。
从SRAM启动 SRAM位于block2 地址范围从0x2000 0000开始不同型号大小不同
将SRAM地址0x20000000映射到0x00000000,这样代码启动之后就相当于从0x20000000开始。内置SRAM也就是STM32的内存既然是SRAM自然也就没有程序存储的能力了这个模式一般用于程序调试。假如我只修改了代码中一个小小的地方然后就需要重新擦除整个Flash比较的费时可以考虑从这个模式启动代码用于快速的程序调试等程序调试完成后在将程序下载到SRAM中。
BOOT电路
Boot0和Boot1引脚被用来设定单片机的启动模式它们通常需要单独的电源和电源地是为了避免不同引脚之间的干扰和影响确保引脚功能的准确性和可靠性。具体原因包括以下几点 1. **电源隔离**Boot0和Boot1引脚需要连接到不同的电源线路上因为在某些情况下这两个引脚可能会需要不同的电源供应条件。通过单独的电源连接可以避免由于电源干扰而导致引脚功能异常或误操作。 2. **地线隔离**同样Boot0和Boot1引脚通常需要连接到不同的地线上即电源地。分开地线连接有助于减少地线回路干扰和使得引脚的接地更为稳定确保系统的可靠性和稳定性。 3. **信号隔离**Boot0和Boot1引脚在电路设计中可能受到其他信号线的影响为了避免不同信号线之间的干扰单独的电源和地线也能帮助减少信号干扰确保引脚操作的准确性。 总的来说单独的电源和电源地连接有助于确保Boot0和Boot1引脚在工作时具有良好的电气特性减少外部干扰和影响保证单片机启动模式设置的准确性和可靠性。 在Boot0和Boot1电路上引脚上加电阻通常有以下几个作用 1. **限流作用**添加电阻可以限制引脚上的电流避免在异常情况下比如短路产生过大的电流保护单片机不受损害。 2. **消除漂移**在复杂电路环境中引脚可能会受到外部信号的影响而产生漂移通过给引脚加上电阻可以帮助减小这种影响保持引脚信号的稳定性。 3. **防抖作用**引脚上的电阻可以帮助减少引脚信号的抖动或干扰确保信号传输的稳定性和可靠性。 4. **调节电平**通过选择合适大小的电阻可以调节引脚上的电平确保单片机在正确的电平下正常工作。 总的来说给Boot0和Boot1电路上的引脚添加电阻有助于保护单片机、稳定信号、减小影响并确保正常的工作状态。在设计电路时需要根据具体情况选择合适的电阻数值和类型以满足系统要求并提高系统性能和稳定性。