[经验] STM32ISP自动串口下载工具测试版发布~~~~~~

but_2000   2008-7-25 16:20 楼主


最近被逼迫使用hotcomm组件,顺手做了一个STM32的自动程序下载工具,喜欢的给帮忙测试测试。。
2@1ic的博客上传文件不成功,所以只好贴在俺的小网站里了,下载链接为:
STM32_ISP
看官自行下载~~~~~~~~~~~~~~~~~~~欢迎拍砖。。。









Hot!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之类的芯片
  或者直接用二极管加电阻的方法;
  
  基于力源EK-STM32F开发板的改造电路图:
D1 D2 D3 D4 :: 二极管 (1N4007等等)
R1 :: 10K
                                        +-->VCC
                                      100K(板子自带)
                                        |
           (负极)   (正极)              |
RTS---->--R1--> -D2+ -------+-- (-D4+)--+--> STM32_Boot0  (注D4可不接,短路或加电阻即可)
(DB7)    ()                 |   
                            -(负极)
                            D3  
                            +(正极)
                            |
                            =
                           GND
(DB4)                   (负极)   (正极)
DTR---->--ST3232------------> -D1+ -->STM32_RST
    (232电平入)   (TTL出)
   以下是hotpower的一些说明,这里引用一下:
   仔细分析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.关于本工具的使用:
  基本没有太多要说的,打开本软件并连接好板子后,点击“连接设备”即可,程序会自动完成对芯片
  相关信息的读取,如果线路有问题则会报错。串口调试软件的使用和其他同类工具相似,这里就不多
  啰嗦了。
5.本软件为测试版,运行中可能会有错误,运行速度可能较慢,同时还有部分功能(如对寄存器的操作)
  还没有加上,欢迎各位拍砖,欢迎各位使用者积极反馈:liuhang20011@163.com

回复评论 (13)

可能下载速度会比较慢~~~~~~~~



本来打算发21ic博客或者ednchina博客,结果21ic博客没法上传文件,edn那边的附件只能传1M,所以只好传俺自己的小网站了

俺一会再到edn试试,上传成功的话会把链接贴过来~~~~~~~~~


这是第一次做这种工具,所以可能有不少不当之处,希望能多多提意见,这次是测试版,而hotcomm组件还有一些问题,所以待hotcomm稳定后会发正式版本。

 

PS:

这次主要是被逼试用hotcomm组件,做了这个小工具,我用的时候发现速度可能有点慢,但是感觉制作时间拖的有些长,所以这次仓促发布,如有不当,欢迎提意见,欢迎拍砖。。。

点赞  2008-7-25 16:23

对了



各位看官别忘了帮俺撑撑场子,顺便访问访问“电子工程师的收藏夹”:


http://www.hotpage.net.cn

点赞  2008-7-25 16:27

不错,只可惜俺作为版主也被赶到地毯上了

                                 哈哈,沙发不见了。
点赞  2008-7-25 16:48

呵呵



从上周开始做,拖的时间比较长,今天已经是周末,被hot大叔逼迫只好仓促发布试验版本~~~~~~~~~~~~~
点赞  2008-7-25 16:50

试试..刚好有一块板子.

                                  
点赞  2008-7-25 21:15

哈哈~~~冷落呀~~~就这匠人还要俺公开源码,晕死了~~~

                                  
点赞  2008-7-26 22:50

这东西好~

一直没有下决心玩STM32,就是因为他没有ISP~
有了这个软件好办多了!!
点赞  2008-7-27 23:28

赶快整好点,我正在给客户做生产指导文件

                                 希望能用上你这个工具,现在是用JTAG灌程序的。
点赞  2008-7-28 10:37

顶!

                                  
点赞  2008-7-28 10:40

9楼还要啥功能?



??
点赞  2008-7-28 14:25

提个意见,你的东东太大了

                                 我自己做的小工具,很多比你这个复杂,很少超过500K的。
点赞  2008-7-30 12:15

需求

把界面改简洁些
打开Hex文件,烧录、校验、保护。做好这几个功能对生产就够了。
串口调试以及寄存器操作等开发调试的功能,还是从这个软件中独立出来吧。
Hot大叔的这个万金油思想,怎么也传给你了。

烧录序列号作为扩展功能,不要放在主界面,保持主界面的简洁。
串口设置放在单独的Setting Dialog中,可以这样认为,PE工程师设置好这些参数后,工人Operator只需按打开Hex文件,烧录、校验、保护这几个按钮,就可以烧录了。

还有Boot0的处理,这些交给PE工程师去搞,他们会搞得更棒------漂亮的测试架,测试针顶在Boot0、TXD、RXD、GND四个点,然后做这个ISP。
工程师一般会用JTAG或者IAP的,准确给ISP定位是很重要的。
点赞  2008-7-30 23:43

哈哈~~~他玩的初级版,高级的带自动识别串口及参数记忆

                                 哈哈~~~俺等ST自认为做到"极品"时再出菜刀---喀嚓~~~
点赞  2008-7-31 03:26
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复