AVR universal Bootloader 在Atemga32 中的应用(一)

 

/***************************************************************************************************************************    

  AVR 通用 Bootloader这个程序提供一个具有通用性的 AVR Bootloader,不同型号的AVR单片机只需要修改一下几个简单的配置参数就可以直接使用了,不需要再修改主程序。因为现在网上流传的很多 Bootloader程序都是针对某个或几个特定型号的,在换用其它型号后,需要对程序进行较多的修改;而且很多Bootloader程序虽然实现了基本功能,但是存在着一些缺陷或隐患,或者使用起来不够方便,所以我写了这个程序。它是在网上流传的马潮老师的ATmega128 Bootloader程序的基础上,结合了我以前在PIC18单片机中使用Bootloader的一点经验,以及学习自AVR USB中一些使用宏定义的技巧,再经过多次优化和反复测试后得出的。

      这个通用的Bootloader可以支持大部分具有自编程功能、带有Boot区和UART串口的AVR单片机(主要是Mega系列)。如果是多串口的单片机,可以任意选择使用其中的一个串口。程序支持RS232/RS485/RS422方式,如果程序稍加修改,也应当可以很容易的支持USI、SPI、I2C等接口。

       整个Bootloader最大占用不到1K Word的空间。在最小情况下,占用的空间不到300 Word(具体占用空间的大小与单片机的型号、配置的参数、功能裁剪的多少以及程序的优化等级有关)。



主要特点?

  • 支持多种型号的AVR单片机
  • 支持多串口的AVR单片机
  • 支持RS232/RS485/RS422模式
  • 支持多种通信波特率和时钟频率
  • 自动计算波特率误差,如果波特率误差>2%,将给出错误提示
  • 完全C语言编写,容易修改
  • 代码高度优化,占用空间小
  • 方便的功能裁剪,适应不同的要求
  • 支持看门狗
  • 支持使用LED指示升级状态
  • 支持使用超级终端做为上位机下载软件
  • 支持Flash写入校验
  • 可以自定义用户程序区大小

***********************************************************************************************/

 

        我自己做了一个Atmega32的板子,在Atmega32中我使用了bootloder 。首先我下载了avr 通用 bootloader

的源代码和AVRUBD的windows PC端程序。编译avr universal bootloader的程序有两种方式:

        1.可以通过AVRUBD的自动配置功能进行编译。

        2.对程序的源代码的配置文件进行修改,手动编译。

 

 

       这里我只对自动编译进行主要的阐述:

 

     首先打开avrubd.exe 应用程序,对源程序进行自动配置编译:进入【操作】---->【》》自动生成配置代码】

(或者按F11),弹出自动配置对话框如下图。在这里我选择我的单片机Atmega32,选择时钟晶振7.3728Mhz,

波特率选择115200,然后单击【创建】保存配置文件在源程序的目录,然后立即选择编译bootloader,这样

bootloader就被编译完成。

 

     

通过ISP或者JTAG ICE将bootloader程序下载Atemga32的bootloader区,在这里要注意AVR单片机的

熔丝位的设置 ,boot区大小的设置。

 

 

    

 

熔丝位设置好以后,就烧写程序到flash的boot区。

 

然后打开AVRUBD.exe进入【选项】---》【AVR】并选择

 


进入【选项】---》【系统】并选择

进入【选项】---》【串口】并选择

在选项都配置好以后,打开编译好的bin文件或者hex文件,按黑色的【dn】

按钮进行下载。

 

最后会提示升级成功的提示。这样就算bootloader升级成功。

 

注意:在使用bootloder的烧写时要特别注意熔丝位的设置,要不然会导致升级失败。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章