嵌入式学习小组
直播中

贾桂林

7年用户 1484经验值
私信 关注

LPC2132芯片的ISP怎么实现一键式下载?

       我向同事借了原点的这个miniSTM32开发板来玩玩。刚刚在看”STM32不完全手册_V2.1.pdf“第27页的时候,讲述了PL2303芯片进行USB转UART的威廉希尔官方网站 。正好联想到我最近在设计的LPC2132芯片的威廉希尔官方网站 ,LPC2132在进行ISP下载的时候,必须在上电之前就将P0.14引脚接GND,这样才能进入ISP下载状态。但是我觉得很不方便。
      一来是现在笔记本电脑基本不带串口了。二来是不想每次下载的时候都要去短接P0.14至GND。所有还是直接考虑USB转UART,且能够进行自动下载,即所谓的一键式下载。
      我现在的思路是直接按照不完全手册上面说的那样,将miniSTM32上面的USB_RS232部分威廉希尔官方网站 产生的RxD和TxD直接引到我的LPC2132板子上面。当然那种GND和3.3V我会公用起来的。
      现在的问题就是怎么实现一键式,也就是能够自动的将LPC2132的P0.14拉成低电平。这边看到PL2303的DTR和RST引脚,也就是miniSTM32板子上对应的RESET和BOOT0。(也就是说的那个Q1和Q2威廉希尔官方网站 )
       我想请教的是,BOOT0是不是准备下载程序的时候就会被拉低,一直持续到程序下载完毕?如果是这样的话,我完全可以将这个信号引接到LPC2132的P0.14引脚了。
     


回帖(15)

crhm51900928

2019-3-28 08:47:42
以下是原子大哥回复别人的,链接 http://www.tosogo.com/posts/list/1060.htm 

这个很好理解吧? 
首先,你要了解STM32的几种启动模式. 
B0接GND,B1接GND.那就是正常的启动模式,从flash加载代码. 
而B0接V3.3,B1接GND.则是ISP模式,也就是串口更新代码. 
其次,你要了解STM32 ISP下载代码的过程. 
首先B0接V3.3,然后复位STM32.STM32就会加载ISP代码(固化存储在内部),从而进入ISP模式.此时便可以通过串口下载程序了. 
最后再来看看一键下载是怎么实现的呢? 
从原理图可知L2303的RTS控制B0,DTR控制RST. 
我们要达到下载的目的,就必须先让RTS拉高B0(设置B0为1),然后再让DTR控制RST为低(STM32为低电平复位).然后再释放RTS为高(停止复位),然后再开始串口下载代码(此时B0可以为高,也可以为低). 
所以我们看到mcuisp连接过程是: 
DTR电平置低(-3--12V),复位(DTR接了RST) 
RTS置高(+3-+12V),选择进入BootLoader(RTS接了B0) 
...延时100毫秒 
DTR电平变高(+3-+12V)释放复位(释放复位,但是此时B0为高,所以进入ISP模式) 
开始连接...4, 接收到:1F (连接成功) 
在串口COM10连接成功@230400bps,耗时437毫秒 
RTS维持高
举报

钱一辰

2019-3-28 08:54:58
http://www.tosogo.com/posts/list/1060.htm
举报

张龙

2019-3-28 09:14:29
这个很好理解吧? 
首先,你要了解STM32的几种启动模式. 
B0接GND,B1接GND.那就是正常的启动模式,从flash加载代码. 
而B0接V3.3,B1接GND.则是ISP模式,也就是串口更新代码. 
其次,你要了解STM32 ISP下载代码的过程. 
首先B0接V3.3,然后复位STM32.STM32就会加载ISP代码(固化存储在内部),从而进入ISP模式.此时便可以通过串口下载程序了. 
最后再来看看一键下载是怎么实现的呢? 
从原理图可知L2303的RTS控制B0,DTR控制RST. 
我们要达到下载的目的,就必须先让RTS拉高B0(设置B0为1),然后再让DTR控制RST为低(STM32为低电平复位).然后再释放RTS为高(停止复位),然后再开始串口下载代码(此时B0可以为高,也可以为低). 
所以我们看到mcuisp连接过程是: 
DTR
......
---------------------------------
按照原子大哥的解释,我理解如下:
 要想ISP自动下载,无非两个信号:①RESET;②使能,简单的说就是允许进入ISP下载状态的使能;
 1、RESET复位:
     LPC2132和STM32是一样的,都是低电平复位;
2、使能,进入ISP的使能:
     LPC2132的ISP使能是P0.14为低电平,且是在上电的时候,也就是保持P0.14=0,然后复位。这一点和STM32不一样的地方就是STM32是B0=1的时候,复位STM32才进入了ISP。
  那么,LPC2132进入ISP的步骤就是:
     1)首先将P0.14拉低,也就是P0.14=0;
     2)在1)的基础上重新上电或者复位LPC2132;这样就进入了ISP;
     3)在下载程序的时候,LPC2132和STM32是一样的,也就是在程序下载期间,P0.14和B0随便是高电平还是低电平。因此,进入ISP的条件主要还是发生在复位的那个很小的短暂时间内,一旦进入ISP下载状态之后,不用管P0.14和B0的引脚电平了。
   根据以上三个步骤,将要修改miniSTM32上面的LP2303部分Q1和Q2组成的“一键式下载”威廉希尔官方网站 ,主要就是修改B0那一块,因为LPC2132进入ISP状态是P0.14为低电平,而miniSTM32进入ISP下载状态是B0为高电平。因此要想应用miniSTM32上面的一键式下载威廉希尔官方网站 到LPC2132上面去,是必须要将B0那边修改掉的,否则死了也不会“自动”进入ISP下载状态。
   怎么修改?
   方法如下:将P0.14接到Q2的发射极,同时上拉4.7K电阻至3.3V,主要是为了保证不下载程序的时候P0.14是高电平,避免最终产品误入ISP状态导致程序不运行。Q2的集电极接GND,基极就和原来的一样,接到PL2303的RTS_N引脚。这样在PL2303原有驱动不变的情况下,开始下载时先将RTS_N置低电平,那么就导致P0.14变为低电平。,之后将DTR_N置高电平,导致RESET=0,也就是复位了。这样,就满足了P0.14=0并开始复位时,自动进入ISP下载模式

   
举报

黄勇

2019-3-28 09:28:06
晕死,我改好了那一块,怎么不能回复图片的
举报

更多回帖

发帖
×
20
完善资料,
赚取积分