日志档案

发表于 2007-12-21 0:35:51

1

标签: 无标签

再次自贺STM32之3线ISP硬件电路完美倒塌~~~

hotpower 发表于 2007-12-21 00:02 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

2楼: 再次自贺STM32之3线ISP硬件电路完美倒塌~~~

将BOOT1接地,不过有个问题---PB2就不能用了吗???能否配置PB2为IO???

因为通用的rs232电平转换芯片一般为2路,例max3232.

1路:
  PC端  MAX3232   STM32
   TX    --->      RXD
   RX    <---      TXD

另1路
  PC端  MAX3232   STM32
  RTS    --->      NRST
  CTS    <---      RXD (此线实际无实质用处,主要检测)  

那么BOOT0怎么控制呢???

答案是RXD接非门反向控制BOOT0(实际直连也行,不过可能误入ISP)

即:

路:
  PC端  MAX3232   STM32
   TX    --->      RXD   ---> 非门 ---> BOOT0  
   RX    <---      TXD

另1路
  PC端  MAX3232   STM32
  RTS    --->      NRST                      
  CTS    <---      RXD或BOOT0 (此路可不要,但可作为有无max3232的检测信号)

注:
PC端输出也可用DTR代替
PC端输入也可用DSR/RING/CD代替

这个3线(4线带检测)方案可行吗???

答案是可行的~~~

为什么要采用非门呢???
因为平常无232信号时,RXD为'1',BOOT0为'0',NRST为'1'
即为用户工作状态.

当然可以将RXD与BOOT0直连
这时: 无232信号时,RXD为'1',BOOT0为'1',NRST为'1'
也不会进入ISP.

不过看门狗复位或其他非正常复位时RXD为'1',BOOT0为'1',NRST为'0'(应该是内部复位,但也不排除NRST引脚受干扰)
所以就误入到了ISP状态,这不是我们希望得到的.

故采用非门逻辑(可用NPN+电阻代替)会提高安全性的.

当需要进入ISP(ICP)时,PC发送0x00到STM32,导致BOOT0出现9个单位时间的 '1'

例如波特率选择9600时,发送10个数据位约为1.04mS,9个'1'也在0.9mS左右.
这时再使NRST为'0',肯定进入ISP状态.

当然也可采用变波特率的控制方式,即切换时用低速率,数据通讯用高速率.

实际串口控件可以使BOOT0长时间为'1',所以本电路理论上是可行的~~~

故再次自贺倒塌成功!!!!!!!!

系统分类: ARM   |   用户分类: STM32菜鸟实习   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(635)    回复(1)  

投一票您将和博主都有获奖机会!

最新评论

  • qif2000

    2008-6-28 17:27:45

    请教一个问题,我看大家都在研究用计算机控制ISP下载STM32的技术。我想问,若是通过GPRS远程升级程序,需要怎么做? 是否STM32101X可以自己对自己的FLASH升级程序??