|
本帖最后由 YFRobot 于 2014-1-15 17:56 编辑
在arduino UNO之前的版本如Arduino Dicimila/NG/Duemilanove中,FT232RL作为USB通信芯片被广泛使用,因为FT232R的每个引脚都可以软件直接操作,称之为“Bitbang Mode”,可以用这种模式来给AVR单片机下载程序。
如果你的arduino板Bootloader损坏,无法下载程序,或者准备自制一块arduino板,你只需要有一个FT232下载器,(引出必要的引脚),就可以利用下面的方法对主芯片的Bootloader进行重写,你将用到下面的软件:
注:操作过程在windows 7 32位/64位 验证通过,如果是LINUX或者MAC用户,请参考原网址:
http://www.geocities.jp/arduino_ ... /bitbang_w_ide.html
●Avrdude:
●Avrdude-GUI:,对于Avrdude新用户来说,使用此GUI可以避免烦锁的指令操作符。
硬件接线图:
1)、硬件接线原理图,FT232R需要用到CTS#、DSR#、DCD#、RI#、VCC与标准的6P ICSP引脚相连,如下所示
2)、实物接线如下:
下载设置:(这里以烧写UNO的bootloader作介绍)
将上面两个文件下载后安装到“C:\Program”下,打开"C:\Program Files\avrdude-GUI-1.0.5",双击运行 "avrdude-GUI.exe"。
注:使用“avrdude-GUI-1.0.5”需要安装Microsoft .NET Framework 2.0,可以从这里下载。
1、avrdude.exe File
点击 ,加载"avrdude.exe"文件
2、Programmer
点击下拉菜单,选择“FT232R Synchronous BitBang(diecimila)”
3、Device
点击下拉菜单,选择目标芯片,如果是UNO版本,请选择“Atmega328P(m328)”
4、Command line Option
输入:-P ft0 -B 9600
9600表示下载器工作在9600的波特率下,也可以直接输入"-P ft0",则运行在全速/最高速模式下,对于空白的芯片,推荐使用低波特率。
注:Port 设置项请留空,不需要进行任何配置,否则无法正常工作。
下载测试:
点击"Read",读当前芯片的熔丝位值,如果熔丝位信息与下面不符,需要手动修改,完成后点击“Write”
会跳出一个二次确认对话框,点“YES”,再对Lock Bit进行操作,如下:
注:不同的芯片熔丝位设置不同,具体的熔丝位配置可以在“C:\arduino-1.0.1\hardware\arduino\boards”里找到。
下面是UNO的熔丝位配置信息:
- ##############################################################
- uno.name=Arduino Uno
- uno.upload.protocol=arduino
- uno.upload.maximum_size=32256
- uno.upload.speed=115200
- uno.bootloader.low_fuses=0xff
- uno.bootloader.high_fuses=0xde
- uno.bootloader.extended_fuses=0x05
- uno.bootloader.path=optiboot
- uno.bootloader.file=optiboot_atmega328.hex
- uno.bootloader.unlock_bits=0x3F
- uno.bootloader.lock_bits=0x0F
- uno.build.mcu=atmega328p
- uno.build.f_cpu=16000000L
- uno.build.core=arduino
- uno.build.variant=standard
- ##############################################################
复制代码 熔丝位配置完成后,开始调入官方的Bootloader固件,进行固件烧写:
1、首先加载固件,固件所在文件路径:
C:\arduino-1.0.1\hardware\arduino\bootloaders\optiboot\optiboot_atmega328.HEX
2、加载完成后,点击“Erase-Write-Verify”,等待一会,即可完成烧写。
烧写完成后,对加密位赋0X0F,再点击“Write”
完成烧写后,移除接线,连接USB线缆到Arduino主板,打开Arduino IDE,烧写官方示例“BLINK”,验证是否成功。
Tips:
烧写固件过程中,如果遇到下列问题,请务必确保接线正确,并且保证FT232RL设备工作正常。- avrdude.exe: BitBang OK
- avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
- avrdude.exe: drain OK
- ft245r: bitclk 4800 -> ft baud 2400
- avrdude.exe: ft245r_program_enable: failed
- avrdude.exe: initialization failed, rc=-1
- Double check connections and try again, or use -F to override
- this check.
- avrdude.exe done. Thank you.
复制代码 如果读写熔丝位都没有问题,固化Bootloader时如果出现错误,请用较低的波特率进行烧写,推荐使用9600,即在命令行输入如下指令:
“-P ft0 -B 9600”
如果有疑问,请跟帖回复! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|