YFROBOT创客社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11420|回复: 2
打印 上一主题 下一主题

利用ft232r的Bitbang模式给arduino控制器重新烧写bootloader

[复制链接]

签到天数: 7 天

[LV.3]偶尔看看II

跳转到指定楼层
楼主
发表于 2014-1-12 10:44:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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的熔丝位配置信息:
  1. ##############################################################
  2. uno.name=Arduino Uno
  3. uno.upload.protocol=arduino
  4. uno.upload.maximum_size=32256
  5. uno.upload.speed=115200
  6. uno.bootloader.low_fuses=0xff
  7. uno.bootloader.high_fuses=0xde
  8. uno.bootloader.extended_fuses=0x05
  9. uno.bootloader.path=optiboot
  10. uno.bootloader.file=optiboot_atmega328.hex
  11. uno.bootloader.unlock_bits=0x3F
  12. uno.bootloader.lock_bits=0x0F
  13. uno.build.mcu=atmega328p
  14. uno.build.f_cpu=16000000L
  15. uno.build.core=arduino
  16. uno.build.variant=standard
  17. ##############################################################
复制代码
熔丝位配置完成后,开始调入官方的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设备工作正常。
  1. avrdude.exe: BitBang OK
  2. avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
  3. avrdude.exe: drain OK

  4. ft245r:  bitclk 4800 -> ft baud 2400
  5. avrdude.exe: ft245r_program_enable: failed
  6. avrdude.exe: initialization failed, rc=-1
  7.              Double check connections and try again, or use -F to override
  8.              this check.


  9. avrdude.exe done.  Thank you.
复制代码
如果读写熔丝位都没有问题,固化Bootloader时如果出现错误,请用较低的波特率进行烧写,推荐使用9600,即在命令行输入如下指令:
“-P ft0 -B 9600”  
如果有疑问,请跟帖回复!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对

签到天数: 268 天

[LV.8]以坛为家I

沙发
发表于 2015-12-12 15:35:13 | 只看该作者

thanks you.
good data.
回复 支持 反对

使用道具 举报

签到天数: 4 天

[LV.2]偶尔看看I

板凳
发表于 2020-8-3 12:47:52 | 只看该作者
谢谢分享,楼主
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|联系我们|YFROBOT ( 苏ICP备20009901号-2  

GMT+8, 2024-4-20 18:20 , Processed in 0.101822 second(s), 23 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表