STM32入门笔记:ISP下载原理详解及STM32初探

1.初识STM32

        ARM为IP厂商负责芯片内设(Cortex-M之类),ST为SOC厂商负责芯片外设(GPIO口之类的),M为微控制器低频不能跑太复杂的系统(如Linux),微处理器为高频芯片可以跑复杂系统,32-32bit为32位的芯片。8位芯片如51,16位芯片如PLC、AVR。

STM32含有的通信接口

(1)串口-USART,用于和串口接口的设备进行通信,如:蓝牙模块,WiFi模块

(2)内部集成电路-I2C,用于和I2C接口的设备进行通信,如:电容屏,陀螺仪,EEPROM

(3)串行通信接口-SPI,用于和SPI接口的设备进行通信,如串行FLASH,以太网5500

(4)SDIO、FSMC、I2S、ADC、GPIO

2.据手册的引角定义可以查看各封装方式每个引角的功能

3.熟悉使用窜口ISP下载程序的方法:USB转串口硬件与BooT启动方式

个人理解是和51的RXD与TXD串行输入方式相同,只不过是通过USB转串口将USB信号转换为TTL信号,也就是可以芯片可以接收的波特率信号
根据不同的BOOT电平的模式可以选择芯片不同的烧录区域,两个电阻起上拉作用。其中不同启动方式有以下特点:

(1)STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序,通过ICode总线访问,相当于硬盘(存储空间)。

(2)ISP系统存储器启动,这种模式启动的程序功能是由厂家设置的,用于一般情况下利用串口下载程序。

(3)内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试,通过DCode总线访问,相当于运行内存。

(4)FSMC为静态存储器控制器,是STM32F10系列的一个特色外设,只能存储静态变量。

对于ISP下载时BOOT的电平控制,主要时通过上位机(电脑),控制RTS、DTR的电平,使三极管的通断状态发生变化从而改变BOOT0电平,而BOOT1电平则固定接GND。74HC1G66GW(电容充电控制使能电平控制Y,Z导通状态,延时)主要是在下载时,在RTS、DTR不稳定那段时间内,使这两个引脚无法影响NRTS引脚。

过程如下:

(1)Q3为NPN三极管,Q2为PNP三极管

(2)RTS为低电平时PNP三极管导通,BOOT0为高电平,进入ISP模式

(3)DTR为高电平时NPN三极管导通,Q2的b极拉为为高电平,BOOT0为低电平,回到FLASH

(4)分析后:RTS低电平进入BootLoader,DTR高电平进入复位

下载器设置:


软件上位机设置于分析相反原因是电平标准不同原因:

软件使用232标准:       逻辑1:-3—15V       逻辑0:+3-+15V

STM32烧录使用TTL标准: 逻辑1:3.3V以上     逻辑0:0V以下

注:图片来源野火《STM32hal库实战开发指南》、STM32数据手册

作者:已点亮一颗MCU

物联沃分享整理
物联沃-IOTWORD物联网 » STM32入门笔记:ISP下载原理详解及STM32初探

发表回复