完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我向同事借了原点的这个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个回答
|
|
以下是原子大哥回复别人的,链接 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维持高 |
|
|
|
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 ...... --------------------------------- 按照原子大哥的解释,我理解如下: 要想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下载模式 。 |
|
|
|
晕死,我改好了那一块,怎么不能回复图片的
|
|
|
|
我把对B0引脚的修改图放在附件里
|
|
|
|
|
|
|
|
成功了。的确如你所说的和软件配套才行。我一开始用MCUISP的软件,选择那个DTR和RTS的时候,不管设置成哪一个都不行,而且miniSTM32光盘资料里的MCUISP这个软件,他只能设置选择哪一种DTR和RTS的复位进入Bootloader,并不能修改里面的时间,里面的时间都是100ms,很难用来看到DTR和RTS两个引脚的时序。
我改用FlashMagic之后,里面可以修改时间,这样很容易就看出来了DTR和RTS的时序了,根据时序我发现只要直接将PL2303的DTR接LPC2132的RESET,RTS直接接P0.14。这样就可以自动进入ISP,开始下载,下载完毕了,又自动退出ISP。现在我也是在miniSTM32板子上引出线来的,后面根据结论我整理出来后发表出来。 |
|
|
|
|
|
原子大哥:
问你一下,因为我现在把miniSTM32的板子基本上拆的不像样子了。所以我想问一下当那个USB_232供电的时候,所有ISP下载时候该短接的短路帽都按照ISP下载要求短接,一旦USB_232的USB上电的时候,STM32芯片是不是会自动进入ISP下载状态。我现在按照本帖子上写的那样,根据miniSTM32板子的USB转232电路,重新设计出了LPC2132芯片的ISP自动下载,但是现在出现一个问题,就是USB一插上电脑之后,板子就开始自动进入了ISP下载。如果不下载,只想供电的话,重新按一下复位键就好了。我想问一下miniSTM32是不是也会一上电就进入ISP?(假设那些短路帽就已经按照ISP下载) |
|
|
|
会闪烁几下(被复位.).然后开始正常工作.
|
|
|
|
对呀,我分别对DTR和RTS引脚上接了两个LED,发现上电的时候LED在闪烁。但是现在的问题就是这个上电时候的“被复位”导致我的LPC2132直接进入ISP状态了。此时如果不想下载程序的话,按一下LPC2132的复位键就好了,DTR和RTS保持着高电平。接下来如果想自动下载,都是没有问题的。我就是想怎么样的电路才能避免上电时候PL2303引脚DTR和RTS闪烁对LPC2132的影响?我现在的电路就是将DTR和RTS通过一个NPN三极管接到对应的RESET和P0.14,这个NPN电路的作用就是DTR和RTS输出高电平时候,P0.14和RESET也相应输入高电平,相反,低电平也是一样的。NPN8050就是起一个增强驱动作用。
|
|
|
|
会不会是因为PL2303芯片的RESET引脚直接接的是VDD而导致的呢?如果接一个阻容复位电路,其一个延时的作用会不会解决呢??
|
|
|
|
|
|
|
|
呵呵,也是一个小问题,想办法解决
|
|
|
|
文中提到的BootLoader是ISP功能固化在内部的,那IAP的BootLoader则是自己写的,好像感觉不到两者的区别吗,望指示
|
|
|
|
只有小组成员才能发言,加入小组>>
829 浏览 0 评论
1167 浏览 1 评论
2546 浏览 5 评论
2873 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2734 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1142浏览 3评论
203浏览 2评论
470浏览 2评论
384浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
465浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-3 05:56 , Processed in 1.461282 second(s), Total 108, Slave 88 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号