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

技术分类: 嵌入式系统  | 2007-12-21
作者:hotpower

引自EDN博客:hotpower
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',所以本电路理论上是可行的~~~

故再次自贺倒塌成功!!!!!!!!
0
0
(请您对文章做出评价)
加载中

对文章的评论

更多评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

  • 博客推荐

  • 论坛推荐

  • 在线研讨会