如下是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口、芯片自己彷佛关连都不大。