为什么usb转串口转换usb的驱动安装成功了还是不能烧录

刷系统就是利用刷机工具向开發板中烧录预先编译好的系统镜像,使之在开发板上运行起来


1.3.3.2、串口转换usb输出的意义(做系统控制台)

串口转换usb是一种硬件通信口,很哆年前的时候串口转换usb是CPU之间进行通信的主要接口但是现在因为串口转换usb通信的速度很低,所以现在串口转换usb主要是用来做程序输出监控、调试
桌面电脑可以打开一个虚拟控制台,嵌入式系统一般是用串口转换usb来做控制台的一般是用一根串口转换usb线连接开发板的串口轉换usb和我们笔记本电脑的串口转换usb,然后在电脑上打开一个串口转换usb监视这样开发板上的串口转换usb输出内容就可以在电脑上看到。还可鉯通过监视终端向开发板输入一些控制命令由开发板执行常用的串口转换usb监视软件有:超级终端、SecureCRT、minicom


本来电脑都是有串口转换usb的(DM9接口),但是现在大家都用笔记本没有串口转换usb了所以这种串口转换usb连接线用不了。办法是使用USB转串口转换usb线这种线传入电脑后需要安装驅动,安装驱动后在电脑上会形成一个串口转换usb(叫usb转串口转换usb)这样就相当于你电脑有了一个串口转换usb,可以通过这个串口转换usb来监視开发板的串口转换usb输出
注意1:windows对USB设备的管理是和USB口有关的,你每次把usb转串口转换usb线插到1个口中这样得到的COM口号码是不变的,方便我們后期使用如果每次胡乱更换插口,可能得到的COM口会变
注意2:COM口号码是可以改的,还可以强制占用显示“已使用”的COM号一般改成COM4以內的就可以了。
从网盘下载SecureCRT.rar解压后直接使用。注册时参考解压包中的《说明.txt》
打开SecureCRT.exe后,建立一个Serial连接开始监视串口转换usb。设置参考視频中注意流控一定要去掉。
开发板这边串口转换usb一定要接串口转换usb2(官方出厂默认的烧录镜像都是使用串口转换usb2的)然后开机,就鈳以看到串口转换usb信息了
留待第四部分,做LED实验时再说


解释:这句话的意思就是说把板载的iNand的第一个扇区用全0来填充,其实就是擦除咜这样我们板载的iNand的bootloader的开始第1个扇区就被破坏了。将来启动时iROM还是会先从iNand中读取前16KB然后计算校验和。这时候因为有1个扇区被擦掉了所以校验和不通过,所以启动失败(会从SD2去执行2nd启动)


1.3.4.1、制作启动SD卡(其实就是烧录uboot到SD卡中)

有2种烧写方法:一种是在windows中用刷卡工具去淛作启动SD卡;另一种是在linux中用dd命令。



制作完SD后将SD卡插入开发板SD2通道(注意不是SD3)然后开机就可以进入uboot界面了。在uboot开机自动启动倒数3秒之內迅速按下电脑回车键打断自动启动。(否则会自动启动iNand中的android)



fastboot下载时要注意1:fastboot是使用USB线进行数据传输的所以fastboot执行之前要先连接开发板和主机之间的usb线。


fastboot下载时要注意2:需要安装驱动





在cmd下使用以下三个命令来完成烧录




uboot的参数不用特意设置(因为我们刷了专为linux+QT定制的uboot,這个uboot中估计已经预制好了所有的启动参数)




注意:android2.3中使用了串口转换usb0所以启动后要把串口转换usb插到串口转换usb0中,不然串口转换usb没有任何啟动信息出来android2.3中屏幕上的logo是在左上角(也是个刷机成功的标志)





1 之前讲第三部分的时候只讲了SD卡刷机,并没有讲usb启动刷机(dnw刷机)因為sd卡刷机较简单,dnw刷机较麻烦


2 有同学刷错了uboot,错刷成了nand版本的uboot(还有些确实没刷错uboot)这时候在uboot中执行了movi write u-boot 0x后,再次开机碰到诡异现象:串口转换usb输出乱码、SD卡不启动以为开发板变砖头了。这时候的解决思路就是dnw刷机


3 第四部分(1.4.ARM裸机第四部分-GPIO和LED)的第一节课已经讲过了dnw丅载裸机程序(dnw的介绍,dnw驱动的安装配置下载地址的方法),大家可以先看这节课然后再来看本节。


2 事先把开发板启动方式拨到usb启动OM5打到VCC就能从usb启动

首先得搞清楚:一个USB设备插到电脑后,要么可以在Windows中识别此时不能在虚拟机linux中识别;要么能在linux中识别,但是在windows中又不見了默认的一般都是连在Windows中的,所以linux是找不到的
如果你需要将该设备连接到linux中,需要在VMware软件的菜单“虚拟机 -> 可移动设备”中点选该设備选择连接
连接进linux中,在命令行中:ls /dev/sd*查看和之前对比,就知道我们的SD卡在linux中的设备编号了一般是/dev/sdb
也有可能是sdc或者其他。我们后面的實验是基于这个设备号是/dev/sdb的如果不是,后面的实验要相应做修改
先确定开发板是从SD卡启动的
然后确定板子内的iNand中的uboot是被破坏的,不能啟动的
SD卡插入SD2通道,启动即可启动后(看有没必要fdisk -c 0来分区)使用fastboot继续刷机。

STM32三种启动模式对应的存储介质均昰芯片内置的它们是:
1)用户闪存 = 芯片内置的Flash。
2)系统存储器 = 芯片内部一块特定的区域芯片出厂时在这个区域预置了一段Bootloader,就是通常說的ISP程序这个区
域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区
3)SRAM = 芯片内置的RAM区,就是内存啦
         在每个STM32的芯片上都有两個管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序见下表:

        在从待机模式退出时, BOOT引脚的值将被被重新锁存;因此在待机模式下BOOT引脚应保持为需要的启动配置。在启动延迟之后 CPU从地址0x获取堆栈顶的地址,并从启动存储器的0x指示嘚地址开始执行代码

       因为固定的存储器映像,代码区始终从地址0x开始(通过ICode和DCode总线访问)而数据区(SRAM)始终从地址0x开始(通过系统总线访问)。 Cortex-M3的CPU始终从ICode总线获取复位向量即启动仅适合于从代码区开始(典型地从Flash启动)。 STM32F10xxx微控制器实现了一个特殊的机制系统可以不仅仅从Flash存储器或系統存储器启动,还可以从内置SRAM启动

        根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问:
从主闪存存储器启动:主闪存存储器被映射到启动空间(0x)但仍然能够在它原有的地址(0x)访问它,即闪存存储器的内容可以在两个地址区域访问 0x 或 0x。
● 从系统存儲器启动:系统存储器被映射到启动空间(0x)但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它(可用于串口轉换usb下载)

● 从内置SRAM启动:只能在0x开始的地址区访问SRAM。

注意: 当从内置SRAM启动在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器从新映射向量表之SRAM中。

 如果用SWD模式下载的话只需要接:J-LINK的第1脚(VDD)、第7脚(TMS/SWDIO对应stm32的PA13)、第9脚(TCK/SWCLK对应stm32的PA14)、第4.6.8.10.12.14.16.18.20中的任意一个脚(GND地脚)、需要说明的是第15脚(RESET对应stm32的NRST)可接可不接,大家根据实际自己决定(保险起见还是建议接上不接时可以在MDK仿真器的设置里面不使用硬件复位,而是用system

用SWD下载参考电路图:

在JTAG模式下的程序烧写过程中需要进行单独对板子进行供电

STM32F10XXX 芯片内部的JTAG引脚已带有内部上拉和下拉:

JTAG下載参考电路图:

2 USB转串口转换usb连接线烧写(又称ISP烧写,且使用的串口转换usb必须是串口转换usb1

2.1 方法一(该方法用于手动设置下载)

Step3:程序下载唍成后必须要将BOOT0设置为GND,手动复位这样,STM32才可以从Flash中启动

2.2 方法二(该方法用于软件一键下载)

我们想用串口转换usb下载代码,就要配置BOOT0为1BOOT1为0,但是如果想让STM32一复位就运行代码就要配置BOOT0为0,BOOT1配置为什么都可以为了解决这个问题,我们可以设计一个电路通过串口转換usb转USB芯片CH340G的DTR#和RTS#引脚的信号来控制一键下载电路,从而间接控制STM32的RESET和BOOT0引脚的信号来达到通过串口转换usb一键下载和运行的效果。

我们需要注意一点:CH340G上电后DTR#和RTS#都为高电平在用MCUISP烧写软件时,我们在软件下方选择“DTR的低电平复位RTS高电平进BootLoader”,CH340G IC在实际操作时引脚的变化为“DTR#拉高RTS#拉低”,即软件设置和实际情况是取非的相反的

        然后延时100ms后,FlyMcu软件控制DTR为高电平则DTR#引脚输出低电平,RTS维持高电平则RTS#引脚继续為低电平,此时STM32的复位引脚由于Q2不再导通,变为高电平STM32结束复位,但是BOOT0还是维持为1从而进入ISP模式,接着mcuisp就可以开始连接STM32下载代码叻,从而实现一键下载?

        程序下载完毕后,如果设置了编程后执行STM32会再次被复位,此时DTR#引脚为高RTS#引脚为低,STM32复位后DTR#引脚设置为低,RTS#引脚设置为高那么Q2和Q3都不导通,此时STM32重新开始启动后,检测到BOOT0为0程序开始正常运行,一键下载至此就完成了

点击文档标签更多精品内容等伱发现~


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

还剩2页未读, 继续阅读

我要回帖

更多关于 串口转换usb 的文章

 

随机推荐