- 软件介绍
- 软件截图
STM32 自动ISP工具使用说明:1.本工具参考意法半导体应用手册AN2060“STM32F101xx and STM32F103xx system memory boot mode”制作,STM32 ISP的启动方式以及相关命令在该手册中都有详细说明;2.本工具使用了HotComm串口组件的初级版本,最终解释权归hotpower所有;3.使用本工具不需要手动复位操作或手动调节boot1和boot0的状态,因此需要对电路进行相应改造:《若要进入STM32 ISP状态,必须使 boot0 = 1 boot1 = 0,并使系统重新复位》本工具在Embest和力源的开发板上进行了测试,改造过程以这两块板为例,我们使用串口的DTR信号来操作STM32芯片的复位,使用RTS信号完成对boot0的操作(boot1始终置低电平!);由于DTR/RTS是232电平,即-15V~+15V, 一般在+-10V左右,所以需要对电平进行转换,可以使用max3232之类的芯片或者直接用二极管加电阻的方法;
以下是hotpower在21ic论坛里的一些说明,这里引用一下:仔细分析STM32ISP的数据流向,可以找到很规律的关系。不外乎你攻我守,你守我攻。但如果攻守失衡,必然带来死机的结果~~~现在做到的是如何解脱死机(死锁)???---只有Reset!!!现在看到自动ISP的好处和威力了吧---不怕死,就怕死了救不活!!!自动ISP电路很简单,俺和小朋友先在EK...忘了板名和厂家了~~~就是那个199的~~~LPCARM采用DTR-Reset,RTS-ISP. 所以俺就抄袭这个习俗吧~~~但愿NXP的大鼻子别告俺~~~由于DTR/RTS是232电平,即-15V~+15V, 一般在+-10V左右。一般采用ST3232芯片实现232/TTL电平转换,也可用二极管、三极管但要注意电平的钳位及限流问题。ST3232内部有2入2出。而作为主机,信号方向有3出1入.即TX(STM32的RXD),DTR(RST),RTS(BOOT0)为输出信号, RX(STM32的TXD)为输入信号.RS232芯片一般只连接RXD/TXD这2个信号,故还剩1入1出未用.将DTR接入RS232电平转换芯片,那么STM32的RST就得到了正常的电平控制。考虑硬件存在线与问题,故:RS232的TTL输出加一只二极管D1到RST.再考虑Boot0的连接问题:由于RTS是232的+-10V,那么肯定不能直接和Boot0连接。由于Boot0我们可以把它结果100K电阻(厂家标注)上拉至VCC.(STM32的运行状态)所以我们只需在Boot0上施加低电平即可设定ISP模式.故可用二极管D2单向取-10V即可,考虑STM32不能承受负电压,故可在接二极管D3到地GND(VSS)来将RTS钳位在-0.7V.由于D3的钳位导致了RTS信号过流,故必须用串接10K左右的电阻R1来限流。到此自动ISP硬件电路的改造过程以付出D1,D2,D3和R1的“代价”轻松搞定~~~若搞产品可继续:在Boot0端再串接二极管D4来消除D3钳位造成的负压-0.7V.在Boot0,RST上各接102(或103,104)电容防止信号误触发.一般DTR/RTS未接PC时都为-10V左右,所以拔掉也不能影响STM32的正常工作.由于RS232内部实际为反向器,故:DTR = -10V时RS232输出高电平到RST,即STM32正常运行状态.RTS = -10V时经过二极管的单向导电特性,Boot0为0进入ISP状态.但是注意: 如果PC未介入,RTS上不会有电压信号,故Boot0依然为1所以RTS的工作重点只是如何拉低Boot0上的电压!!!若无PC谈何拉低Boot0???所以PC脱机后该电路也不会影响STM32的原工作状态的~~~相反PC ISP完成后(假使还在ISP状态)再脱机,STM32会自动回到运行状态~~~这-----就是自动ISP的真谛所在~~~”-------------------------------------分割线---------------------------------------------4.关于本工具的使用:基本没有太多要说的,打开本软件并连接好板子后,点击“连接设备”即可,程序会自动完成对芯片相关信息的读取,如果线路有问题则会报错。串口调试软件的使用和其他同类工具相似,这里就不多啰嗦了。
我是在板子上留VCC、RX、TX、GND四针插口,通过RS232适配器与电脑连接,所以板子上MAX232的芯片和DB9的插座都省了,移到RS232适配器上了,我做了几个适配器,发现ISP成功与否似乎与ISP程序与适配器硬件的搭配关系极大,我这几个适配器在与AVR芯片通讯是都没有一点问题,但是用在STM32的ISP上表现就各不一样了,同样的条件下,可能A适配器能很好的在力源的ISP程序下工作,却不能在ST的ISP程序下工作,而B适配器能很好的在ST的ISP程序下工作,却不能在力源的ISP程序下工作,把万利和MXCHIP板子上的232适配器信号引出来用结果也相似,能否与ISP程序配合好用似乎是在掷骰子一样找不出规律,还有ISP时选择通讯波特率也有关系,我的一个适配器在ST的ISP程序下用57600时怎么也连不上,用115200后就很好用了,另外ISP与软(USB转的)硬COM口、芯片本身似乎关系都不大。