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