YFROBOT创客社区
标题:
利用ft232r的Bitbang模式给arduino控制器重新烧写bootloader
[打印本页]
作者:
YFRobot
时间:
2014-1-12 10:44
标题:
利用ft232r的Bitbang模式给arduino控制器重新烧写bootloader
本帖最后由 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: [attach]739[/attach]
●Avrdude-GUI:[attach]738[/attach]
,对于Avrdude新用户来说,使用此GUI可以避免烦锁的指令操作符。
硬件接线图:
1)、硬件接线原理图,FT232R需要用到CTS#、DSR#、DCD#、RI#、VCC与标准的6P ICSP引脚相连,如下所示
[attach]775[/attach]
2)、实物接线如下:
[attach]776[/attach]
下载设置
:
(这里以烧写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,
可以从
这里下载
。
[attach]774[/attach]
1、
avrdud
e
.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”
[attach]779[/attach]
会跳出一个二次确认对话框,点“YES”,再对Lock Bit进行操作,如下:
[attach]777[/attach]
注:不同的芯片熔丝位设置不同,具体的熔丝位配置可以在“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固件,进行固件烧写:
[attach]780[/attach]
1、首先加载固件,固件所在文件路径:
C:\arduino-1.0.1\hardware\arduino\bootloaders\optiboot\optiboot_atmega328.HEX
2、加载完成后,点击“Erase-Write-Verify”,等待一会,即可完成烧写。
烧写完成后,对加密位赋0X0F,再点击“Write”
[attach]778[/attach]
完成烧写后,移除接线,连接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”
如果有疑问,请跟帖回复!
作者:
WANG088
时间:
2015-12-12 15:35
thanks you.
good data.
作者:
cyrs
时间:
2020-8-3 12:47
谢谢分享,楼主
欢迎光临 YFROBOT创客社区 (http://yfrobot.com.cn/)
Powered by Discuz! X3.1