搜索
bottom↓
回复: 29

新鲜出炉的 AVR Xmega Bootloader下载,欢迎移植

[复制链接]

出0入0汤圆

发表于 2010-1-12 12:16:32 | 显示全部楼层 |阅读模式
前些日子做了个Xmega板子,开始学习XMEGA,第一步就移植了AVR的bootloader,使用Shaoziyang做的AVRUBD下载程序,非常方便,欢迎大家移植,但是这不针对AVR,AVR和XMEGA还是有很大的差别的。下面说说移植办法:

假如,你已经有XMEGA系统,并且想移植这个bootloader程序到你的系统中,使用串口升级你的应用程序!
你要做的:

1.确定你的设备型号,也就是XMEGA型号,查找以下参数:
    1.1 芯片的页容量,把写到下面定义
                                                                #define BUFFERSIZE         256 (把你查到的数值写到这里 XMEGA64A3的页容量是256 bytes )
        1.2 芯片的bootload 起始地址
                                                                #define BootStart          2 * 0x8000UL(XMEGA的boot是从0x10000 bytes开始)
                                                                同时把以上的数值 写到项目配置中 具体是:
                                                                                        菜单: Project -> Configuration Option -> Memory Settings
                                                                                        把 .text 的地址改到 BootStart (也就是把这些程序放置在boot区)
                                                                                        (注意这里的.text 的地址是以字算的,也就是说单位是word. (1 word =2 bytes))
        以上的参数可以从芯片的数据手册或者对应的头文件得到,比如  
                                                                                        atxmega64a3  对应的头文件是 iox64a3.h
                                                                                        atxmega64a1  对应的头文件是 iox64a1.h
                                                                                        atxmega128a1 对应的头文件是 iox128a1.h
                                                                                        atxmega128a3 对应的头文件是 iox128a3.h
                                                                                以上这些文件都可以在winavr目录下找到\avr\include\avr
                                                                                找到对应的头文件后查找 关键字: SPM_PAGESIZE 、 BOOT_SECTION_START 你得到的是以bytes为单位

2.修改你的串口,找到 Xmega_Boot.c 在程序开头有如下定义:
                        //使用UARTE1  这里定义你的下载串口
                        #define USART      USARTE1  把这个改成你板子上用的串口
                        #define USART_PORT PORTE    串口对应的端口
                        #define USART_TX   PIN7_bm  发送端口号
                        #define USART_RX   PIN6_bm  接收端口号
3.修改你的LED显示状态,找到LED.h这文件,里面是LED控制程序,自行修改相关代码,或者直接把
                        #define LED_En             1 这个值定义为0,关掉LED指示!


4.如果你要修改波特率,请自行修改代码
        修改 void USART_initial(void) 串口初始化子程序中的 USART_Baudrate_Set(&USART, 25 , 0);
        32M RC中38400的波特率误差很小 0.16% 可以满足要求
//-------------------------------------------------------------------------------------------------------
系统:
联机密码:41 56 52 55 42 (HEX)
通信协议:标准XModem协议
数据帧长:256字节
串口波特率:38400,8,n,1


测试:
> 包 [242/242], 数据 [60.5k/60.5k], 重试 [0/0]
V 升级成功: 用时: [20.8s], 速度: 2.9k/s.

编译环境:
winavr + AvrStudio
使用AvrStudio打开bootloader.aps 项目移植办法讲看bootcfg.h
(注,这个是AVR XMEGA 的引导程序)

如果你在移植到XMEGA时碰到问题可以通过 lisn3188@163.com 得到帮助
感谢源程序作者 Shaoziyang 给我的帮助,让我能快速把这个程序移植到XMEGA上


源代码(内有详细的注释):
AVR xmega bootloaderourdev_525245.rar(文件大小:34K) (原文件名:Xmega_BOOT.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-1-12 13:04:00 | 显示全部楼层
看来目前还是很少人用XMEGA呢,很多人对XMEGA还不太认识,只是XEMGA和AVR是一个内核的东西,并没有什么神秘的。
但是它却有AVR更多的功能更快的速度并且功耗更低,看看这个片子,TAOBAO上有一家在卖28元片(这并不是广告,只是说明一下这个价格,不要拿STM32来比)
Atxmega64a3(注:后缀有a1,a3,a4三种引脚分别是100,64,48)内部64K+4K flash闪存,4K RAM和2K EEPROM。
这个芯片的功能:
.4通道的DMA
.8通道的事件触发系统
.7个16位的定时器 PWM发生器、输入捕捉
.7个USART 支持IRDA
.2个TWI (I2C SMbus)
.3个SPI
.16位RTC
.2个12位最高2M采样率的ADC,各8个输入端口
.1个两通道的DAC 最高1M转换速度
.4个模拟比较器
.所有的IO引脚都可以产生中断
.独立时钟看门狗
.AES,DES加密引擎
.64脚TQFP封装
.最高32M系统时钟
这样的片子,可以完全取代AVR MEGA系列的高档芯片(如M128),当然这个Atxmega64a3是没有外部总线的,这只是表面上的比较,用什么片子还是项目决定

最后,希望大家多多关注XMEGA

出0入22汤圆

发表于 2010-1-12 13:21:33 | 显示全部楼层
顶一个,不知道dragon能不能对其下载?

出0入296汤圆

发表于 2010-1-12 14:06:05 | 显示全部楼层
Dragon可以的,也可以仿真

出0入0汤圆

发表于 2010-1-12 15:06:21 | 显示全部楼层
顶,我也在玩Xmega,下载倒不愁,手上有克隆版的MKII(Dragon也可以下载),只是芯片用的人少,交流的也少。大虾们多做几块开发板,做点有意思的东东出来就好了。

出0入0汤圆

 楼主| 发表于 2010-1-12 16:01:06 | 显示全部楼层
LS 我正在用XMEGA的DAC做WAV播放器,TDA1308做功放.现在还有点小问题,做好了放上来大家一起玩玩。

出0入0汤圆

发表于 2010-1-12 18:58:57 | 显示全部楼层
最大的问题还是没中文DATASHEET...这个很影响普及的..
因为还要工作做其他事,所以还真没那么多时间去仔细研究英文数据手册...
近期打算做的一个东西还是准备用MEGA128..

出0入0汤圆

 楼主| 发表于 2010-1-13 09:53:58 | 显示全部楼层
LS,中文手册确实是一个问题,相信不久atmel会把它搞成中文的吧。
前阵子有个帖子说要翻译这个手册的,不知道怎么样了...
但是话说回来,做电子的人看不懂英文手册那也是一个悲哀...

出0入0汤圆

发表于 2010-1-23 23:11:19 | 显示全部楼层
lisn3188 龙南 :

你的 “ xmega64a3 xmega128a3 空板  ”用于 XMEGA32A4 没问题吧? 我刚从淘宝上买了几片 XMEGA32A4 ,,25块一个,,还好不算

贵得离谱, 以后多向你请教!

出0入0汤圆

 楼主| 发表于 2010-2-3 15:43:00 | 显示全部楼层
【9楼】 tvro123
XMEGA从后缀上分,有A1、A3、A4 之分,一般A1是带总线的,有100脚之多
A3是64个脚的,而你买的XMEGA32A4 则是44个脚的,自然不能用我画的板子

出0入0汤圆

发表于 2010-3-20 16:17:53 | 显示全部楼层
太好了!!!!!!!!!!!!!

出0入0汤圆

发表于 2010-3-21 00:30:58 | 显示全部楼层
买不到片子,再好也没有用啊.

出0入0汤圆

发表于 2010-3-21 00:43:29 | 显示全部楼层
最近用a1,挂了8m的dram,开始是winavr的地址指针寻址不到64k sram以上的空间,换iar后使用huge指针可以使用,但用大模式编译的代码,printf不能使用,换小模式又可以,但只能寻址64k。初步断定是大模式库函数的问题,dlib和clib都一样。

不知道有人知道这是怎么回事吗?

出0入0汤圆

发表于 2010-4-15 22:29:39 | 显示全部楼层
学习

出0入0汤圆

发表于 2010-7-29 08:41:32 | 显示全部楼层
顶,在移植16D4,碰到些问题

出0入0汤圆

发表于 2010-9-20 10:46:03 | 显示全部楼层
感谢楼主lisn3188 龙南,感谢Shaoziyang,感谢ourdev,感谢大家,终于测试成功

出0入0汤圆

 楼主| 发表于 2010-9-27 19:38:49 | 显示全部楼层
上传最新的BOOT程序:
xmega最新bootloaderourdev_586009NLSY5Z.rar(文件大小:96K) (原文件名:USB_BOOT.rar)
这个版本使用 115200BPS 更快的程序下载速度。

出0入0汤圆

发表于 2010-9-27 20:11:34 | 显示全部楼层
顶, 学习

出0入0汤圆

发表于 2011-5-12 16:17:29 | 显示全部楼层
回复【9楼】tvro123
lisn3188 龙南 :
你的 “ xmega64a3 xmega128a3 空板  ”用于 xmega32a4 没问题吧? 我刚从淘宝上买了几片 xmega32a4 ,,25块一个,,还好不算
贵得离谱, 以后多向你请教!
-----------------------------------------------------------------------

这都一年多了,32A4现在淘宝上我找到的是29块钱。ATMEL现在是不差钱呀。AVR这点钱看不上了。

出0入0汤圆

发表于 2011-8-2 22:14:08 | 显示全部楼层
记号

出0入0汤圆

发表于 2012-3-26 11:25:38 | 显示全部楼层
除件下不了啊

出0入0汤圆

发表于 2013-4-8 21:34:39 | 显示全部楼层
多谢分享~

出0入0汤圆

发表于 2013-4-26 15:04:53 | 显示全部楼层
大哥,按照你的指示做,为何设置了bootrst后查看汇编代码boot代码为何不是 位于boot区啊,郁闷纠结啊,神啊,救救我吧,我的芯片是XMEGA32D4

出0入0汤圆

 楼主| 发表于 2013-4-26 15:16:34 | 显示全部楼层
huangshuyi 发表于 2013-4-26 15:04
大哥,按照你的指示做,为何设置了bootrst后查看汇编代码boot代码为何不是 位于boot区啊,郁闷纠结啊,神啊 ...

你用的是什么编译环境? 麻烦按楼主位的工程【环境 winAVR + AVRStudio 4.19】,设置.text 的起始地址到BOOT区。  如果用的高级版本的AVRStudio 如5,6,自行研究如何设置吧。因为我没用过

出0入0汤圆

发表于 2013-4-26 19:08:21 | 显示全部楼层
我用的是IAR,没有可以设置.TEXT的选项,今天改了下XCL链接脚本,程序倒是位于0X8000了,可是程序不能正常工作啊,楼主对这方面熟悉吗,好像用IAR开发的真的少啊,貌似都是用STUDIO吗?

出0入0汤圆

发表于 2013-4-27 14:00:24 来自手机 | 显示全部楼层
路过.........学习一下....

出0入0汤圆

发表于 2013-4-27 19:44:35 | 显示全部楼层
学习 mark

出0入0汤圆

发表于 2013-4-28 19:00:09 | 显示全部楼层
顶一个,好东西
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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