12163| 7
|
[选型&资源] bluno nano通过bootloader下载程序之bug |
前言: 为了bluno nano能够正常通过bootloader下载程序,花了一天时间,大致明白了串口是如何实现烧写的 大致原理是,软串口打开时,串口或者模拟串口芯片的某个和reset通过1uf的电容相连的管脚被拉低,单片机开始复位,bootloader检测串口管脚是否有数据,如果符合刷机条件,则开始刷程序,这个有一定的时序配合。 FL232RL,ATMEGA8U2,CP2102通过bootloader无需按reset按键刷程序都是一个道理,bluno nano没有串口芯片,但是CC2540做为蓝牙芯片本身就可以实现模拟串口,也就省去了,看原理图是通过P0.5来拉低复位的。 测试对象: 主机:BLE-link V1.1,从机:bluno nano V1.2 目前存在两个bug: BUG1:+5V端,Vin端接入电源时,利用usb口和蓝牙的更新程序都无法成功,但COM始终存在并可以通讯 原因分析:在外接电源时,CC2540的P0.5管脚时序可能存在问题 这个问题有两种解释: 1、类似FT232R中的DTR信号没有和bootload检测端口的时间配合好,即P0.5对reset拉低时,已经过了bootload对串口端口的检测 2、P0.5没有发出低电平(软件问题或者硬件上地线有所问题) 解决办法: 在RST和GND管脚之间接入100~500K的电阻,这个有可能行,但是两个管家之间接入采集卡,下载就肯定没问题了,这个有待DFRobot分析。 BUG2:硬件上连接usb口到nano,5V电源连接到+5V端,然后软件串口打开,此时拔掉usb线和5V的电源,接着先后打开5V电源和插入usb线,然后软件串口关闭,再软件串口打开时,必须要先插拔usb线,才能软件串口打开 1、这个问题的尤其在蓝牙(对于bluno nano,蓝牙和硬件usb连接其实就是一回事,在CC2540的内部处理机制是一样的)下特别严重,有些时候对单片串口连接了之后,通常会忘了关闭软串口,而此时单片机断电了,接下来主机端的蓝牙就断了(类似单片机的usb线拔了一样),然后再断开软串口,再连接时,必须要插拔主机端的蓝牙了。 2、bug分析:个人猜测,主要问题再于CC2540内部程序对P0.5端口的处理,目前是第一次串口连接,reset会被拉低,之后都不会,这个有个好处就是除了第一次蓝牙或者usb线连接,单片机必须重启,其他不需要重启;但坏处在于,软串口打开时,单片机断电了,这个时候主从之间就矛盾了。 3、解决办法:在目前硬件的基础上个人还想不到,如果每次连接时,都将P0.5端口拉低,万一蓝牙断了,然后又连上,系统会不断重启,不知道DFRobot会怎么处理? 两个问题,产品看来还不是很稳定,请尽快解决呀。 |
多谢反馈: BUG1: 待硬件确认 BUG2: usb虚拟串口都是这个样子的,必须先点击关闭软串口,再插拔(复位),再点击打开。否则windows下任何usb转串口芯片都有这个问题。(linux下是否有问题没有试过) 第二个帖子: 为arduino下载程序的第一步就是将arduino复位,让其进入bootloader。所以下载过程中不重启单片机不现实啊。另外都要下新程序了,肯定要覆盖以前的,下载过程中老程序必须停止掉。 所以 1. 为arduino下程序必须通过2540为arduino复位。 2. 关闭打开主机usb串口,在主从连接情况下,会导致从机复位。(这个是为了完成无线下载机制设计的) |
本帖最后由 zjdxfx 于 2014-10-22 14:01 编辑 第二个帖子: 对于bluno nano,建议多一组AT命令,可以关闭程序下载功能(出厂默认时打开),毕竟应用过程中无需再刷新程序 至于BUG2: “usb虚拟串口都是这个样子的,必须先点击关闭软串口,再插拔(复位),再点击打开。否则windows下任何usb转串口芯片都有这个问题。” 特别是“再插拔(复位)”,你这句很对呀,在这个基础上蓝牙断线后不会自动复位就出现问题了;对于nano(没有蓝牙的那种),在打开软串口时会发送DTR然后实现自动复位,而bluno nano在第2次以后打开软串口时无法使单片机复位,这个就是问题所在。 |
本帖最后由 mickey 于 2014-10-23 14:18 编辑 目前在测试楼主提到的无线下载的bug,由于手上没有V1.2版本,就使用Bluno Nnao V1.3做无线下载的测试,V1.2和V1.3的区别是天线部分不用其他完全一样,V1.2使用的陶瓷天线,无线距离较近,V1.3使用PCB天线,距离大大增加。 实验器材:主机:BLE-link V1.1,从机:bluno nano V1.3,可调实验电源 使用USB单独连接bluno nano可正常无线下载程序;使用USB连接bluno nano,同时电源接到5V或者VIN端,可正常无线下载程序;使用实验电源单独给VIN供电可正常下载程序;使用实验电源给5V端口供电有出现过无法下载的情况,认为可能是板子上5V电源的滤波电容比较少容易受到干扰。 等拿到V1.2版本再测试他们具体有什么不同。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed