为XMEGA-A1 Xplained开发板增加板载MKII编程器

作者: shaoziyang
上传时间为: 2014-10-27 11:38 PM

现在大部分开发板都自带仿真器或编程器了,无需外部的仿真器/编程器就可以下载程序,使用简单方便。而XMEGA-A1 Xplained需要外部的仿真器/编程器才能开发,非常不方便。而且XMEGA-A1 Xplained开发板只能使用支持JTAG或PDI的编程器,不支持ISP编程器,而我唯一支持JTAG/PDI的编程器AVRDragon在几年前就坏了,所以拿到XMEGA-A1 Xplained开发板后一直没法使用。

这个开发板上有两个单片机,一个是ATxmega128A1,它就是开发板的主MCU。另一个是AT90USB1287,它完成USB转串口的功能,但也可以控制ATxmega128A1的PDI接口。从硬件上看,是可以通过AT90USB1287实现控制ATxmeag128A1的,ATMEL一开始可能也有这样的想法。但是可能因为这个开发板推出得比较早(也许是赶时间来不及做),可能没有来得及完成,所以ATMEL官方网站上提供的程序并不支持这个功能,只能通过外部编程器/仿真器下载程序。

幸好在网上找到一篇介绍改造这个开发板方法的博客,按照这个方法成功将板载的AT90USB1287变成MKII编程器。整个过程无需外部编程器,只需要通过AT90USB1287内部的Bootloader就可以下载程序,非常方便。下面就详细进行介绍。

⒈首先是做准备工作,先仔细看看 http://fourwalledcubicle.com/blog/2010/02/mein-server/这个英文的博客,它详细介绍了升级操作的每个步骤。当然如果你不想看英文文档,那么就需要仔细看我下面的说明了。

⒉其次,下载并安装必要的软件和程序。

硬件:

  • XMEGA-A1 Xplained开发板,
  • miniUSB线,
  • 杜邦线一根(用处在后面介绍)。

软件:(为了方便大家,所以软件都在附件提供下载,这是经过验证的可以正常使用的版本。当然也可以自己去官网下载最新版本)

  • AVRStudio 或其他AVR开发软件
  • avrgcc 编译器,这个大家应该都有,新版本的AVRStudio自带
  • FLIP 这是ATMEL提供的一个FLASH编程软件,可以通过RS232、USB和CAN接口对芯片的FLASH进行编程。它可以运行在Windows 9x, Windows ME, WindowsNT, Windows2000, WindowsXP, Windows Vista, Windows 7, Windows 8 和 Linux x86等操作系统下。这个软件使用了Java编程,因此需要Java运行环境。这个软件也提供了两种安装程序,区别就在于是否打包了Java运行库,如果你已经安装了Java,那么就可以选择下载较小的不带Java运行库的安装程序。软件的网址在 http://www.atmel.com/tools/flip.aspx
  • LUFA库。LUFA (Lightweight USB Framework for AVRs, formerly known as MyUSB) 是一个开源的AVR8和AVR32单片机的USB协议栈。在http://www.fourwalledcubicle.com/XPLAIN.php中提供了预编译的HEX文件,但是经过测试,发现这个HEX文件不是太稳定,会造成模拟的MKII编程器在下载时不太稳定。所以,最好还是自己下载源码,然后进行编译。http://www.fourwalledcubicle.com/LUFA.php

⒊编译XPLAINBridge。将LUFA的源码展开后,进入projects/XPLAINBridge目录,然后在命令行下输入make进行编译,等编译完成后,得到XPLAINBridge.hex,就是我们需要写入AT90USB1287的程序了。

LUFA有多个版本,我开始下载了最新的LUFA 140302,在编译时总是提示有错误。这应该与我安装的AVRGCC编译器版本不是最新版有关,而我不想重新升级安装AVRGCC。于是又下载了LUFA 130901 ,这次编译非常顺利,很快就完成了。经过测试这个版本运行也很稳定。

⒋在升级前,还要先检查一下XMEGA-A1 Xplained开发板的版本。因为这个开发板有4种不同硬件版本,而版本一是不支持Bootloader的(因为在AT90USB1287中没有内置Bootloader程序,不能升级,需要外部的编程器才能将程序写入)。不过幸运的是版本一很少见,99%的人是不会遇到的。检查硬件版本的方法是看开发板方面的不干胶标签上的数字,如图
4.jpg

⒌进入Bootloader模式。方法是在开发板接入USB前,先将开发板左上方的JTAG USB接口(AT90USB1287的JTAG口)的1、2用短路块连接起来(也就是将TCK信号接地,如图),然后再将开发板通过miniUSB线连接到计算机。如果这时Windows提示安装新的驱动,或者在WIndows设备管理器中发现新的设备,说明已经进入Bootloader模式。如果提示安装驱动,就安装 {FLIP Install Directory}/usb 下的驱动。如果没有找到新设备也没有关系,基本上10次里面有8到9次是找不到的,这应该是这个Bootloader的一个bug,这时前面准备的杜邦线就用上了,在不拔下USB线的情况下,将JTAG USB的6脚和10脚短接(RESET接地),然后再取下。这时一般就可以找到新设备了。
1.jpg

⒍下载编译好的XPLAINBridge.hex到AT90USB1287。运行FLIP,用软件工具栏的第一个按钮选择芯片型号(AT90USB1287),用第二个按钮选择通信方式(USB)。再用第9个按钮选择编译好的HEX文件 XPLAINBridge.hex,然后按下左下角的“Run”,就开始下载了。下载速度很快,几秒就完成了。下载成功后,记得先取下JTAG USB上的短路块,然后按下“Start Application”按钮,这时会提示找到新的设备。安装 {LUFA Root Directory}/Projects/XPLAINBridge/ 目录下的 XPLAIN Bridge.inf 驱动就行。

2.png

⒎最后一步,就是进入PDI编程模式。在不连接USB的情况下,将JTAG USB的9、10用短路块相连(TDI接地),在连接miniUSB,就像前面那样。这时就会找到AVRISP mkII,通常这时可以自动安装驱动,因为安装AVRStudio软件时会自动安装了MKII的驱动程序。
3.jpg


⒏打开AVRStudio或者其他开发软件,编译一个测试程序。或者直接通过支持MKII的编程软件,下载已经编译好的测试程序。

⒐如果前面几步安装驱动时失败,说明你使用的是精简版Windows,缺少了几个相关的驱动文件,下载附件中的驱动软件并复制到windows即可。

参考:
http://fourwalledcubicle.com/blog/2010/02/mein-server/
http://www.atmel.com/tools/avrxplain.aspx


附件:

LUFA 130901版适合旧版本编译器,140302版适合新版本编译器
lufa-LUFA-130901.7z (2.17 MB, 下载次数: 2)
lufa-LUFA-140302.7z (2.35 MB, 下载次数: 2)

FLIP编程软件
Flip Installer - 3.4.7.112.zip (5.59 MB, 下载次数: 2)

缺少的驱动文件
mdmcpq.inf_usbser.sys.zip (26.87 KB, 下载次数: 1)

几个测试程序
AVR XPLAIN TEST.ZIP (57.52 KB, 下载次数: 1) 

全部评论 ()

创建讨论帖子

登录 后参与评论
系统提示