Atmel SAM D21 Xplained Pro评估板开发初步(或查阅附件)
Atmel SAM D21 Xplained Pro评估板包括如下特性[1]:
Atmel Studio 7.0 beta版已经不再支持Windows XP系统。该beta版可以在如下地址中访问下载和下载:http://atmel-studio.s3-website-us-west-2.amazonaws.com/我下载后上传到了百度网盘,包括一个需要通过网络下载安装的版本和一个独立安装包版本:http://pan.baidu.com/s/1nt01F1R
Atmel Studio官方网址仍然是6.2sp2版本,很快会更新至新版本,官网:http://www.atmel.com/tools/atmelstudio.aspx?tab=overviewhttp://www.atmel.com/microsite/atmel_studio6/
至此,Atmel Studio开发环境安装完成。该开发环境安装包约为600MB,只选择ARM微控制器架构,安装完成后占用了约2.5GB磁盘空间,其中对各芯片支持包占用了约1.5GB,SAMD21只需要30MB的支持包就够了,但是Atmel并没有优化安装。GCC库占用了约600MB磁盘空间。
评估版接入电脑后,打开Atmel Studio,启动界面自动识别并显示出SAM D21 Xplained Pro的简介界面,如下图示:
在新弹出的窗口中,Device Family选择SAMD21,Category选择Application,点开中间窗口中的示例,并点击选择“LED Toggle Application – SAM D21 Xplained Pro”,指定工程的名字和路径后,或者使用默认的,点击“OK”即可创建一个工程。如下图示:
不需要做任何改动,选择“Build-Rebuild LED_TOGGLE1”,如下图示: 编译应该没有任何错误,并给出如下图示的编译结果:
选择“Debug-Attach to Target”菜单项,如下图示: 此时显示出Tool配置页面,在Selected debugger/programmer中选择“EDBG ATMLxxx”调试器,Interface选择“SWD”,然后选择“Debug-continue”或者点击界面上的实心蓝色箭头,此时开始下载并启动调试,如下图示:
一般情况下,评估版中的EDBG固件会比Atmel Studio中提供的固件版本低,故必须要先升级EDBG,否则无法下载程序和调试。升级固件是自动识别并完成的,点击Upgrade按钮即可开始升级固件,如下图所示: 说明:EDBG是在评估版上的介于MCU与Atmel Studio之间的一个功能部件,在电脑上开发程序后,对程序下载、在线调试等都需要EDBG辅助完成。
在升级EDBG时,总是显示不成功,于是尝试在命令行下进行手动升级固件,先看下图中所示:
手动更新固件需要使用atfw命令,该命令存放在“C:\Atmel\Studio\7.0\atbackend”中,Edgb_fw.zip文件可以在目录“C:\Atmel\Studio\7.0\tools\edbg”中找到,我为了简单,把该文件复制到了atbackend目录下,这样就不需要指定其绝对路径了。
使用如下命令行可以手动更新EDGB固件:
atfw –t edgb –a edgb_fw.zip
-t指定出atfw命令针对的哪个工具类型,上图最后的显示可以看出有多种工具类型,使用该命令时必须指出工具类型;
-a指出使用哪个文件进行固件升级,后面给出固件的压缩包文件,此压缩包使用原厂压缩包,用户不要自行更改。
由上图可以看出,USB枚举到了评估版的EDGB,但是下载固件失败,此时我的评估版处于Bootloader模式(空闲)下,可以通过atfw –L看出。
评估版中有2个由EDBG控制的LED,表示当前EDBG处于何种模式,如下表所示[2]:
操作模式
电源LED
状态LED
正常模式
电源接通时电源LED灯常亮。
活动指示,当状态LED闪烁时,表示EDBG正在忙碌。
Bootloader模式(空闲)
电源LED和状态LED同时闪烁且闪烁频率一致。
Bootloader模式(升级固件中)
电源LED和状态LED交替闪烁。
通过执行上述的命令,首先USB枚举到了评估版的EDGB后进入了Bootloader模式(空闲)(2个LED同时闪烁),接着进入了Bootloader模式(升级固件中)(2个LED交替闪烁),稍等片刻后回到Bootloader模式(空闲)(2个LED同时闪烁),并提示错误:
GenericError thrown during firmware upgrade
Upgrade failed!Write error
至此,我的评估版每次加电后,电源LED和状态LED同时闪烁且频率一致,即处于Bootloader模式(空闲),如果重启Atmel Studio,Atmel Studio无法发现评估版。
在台式机中的多个USB端口中测试升级固件,并更换了3根带有磁环的USB线仍然无法升级固件!很疑惑为什么总是不行!?
本来可以尝试直接删除目录“C:\Atmel\Studio\7.0\tools\edbg”中的Edgb_fw.zip文件(注意备份),这样Atmel Studio可能不会再提示升级EDBG固件,从而可以继续调试,但现在评估版EDBG已经无法恢复正常模式,每次都加电都处于空闲的Bootloader模式中。
但评估版仍然可以通过命令行的方式看到,即使用atfw –L命令,当然也可以升级固件,但总是升级失败!请高人指点!
[1] 参考:SAM D21 Xplained Pro Evaluation Kit:http://www.atmel.com/tools/atsamd21-xpro.aspx。
[2] 参考《Atmel SAM D21 Xplained Pro User Guide》第3.1节。
楼主moyanming2013的帖子很好,非常详实,而且多图方便理解,多谢你的分享
另外我因为手头没有板子,我看到这个IDE的使用略有些麻烦,希望Microchip能有一些教程或者应用笔记来帮助大家上手。
期待他们下一版的IDE能更方便大家使用
nickwang
是的,Atmel Studio 7.0基于Visual Studio框架(shell),其实VS本身就是“高级(语言)”的IDE,和其它嵌入式平台,如KEIL,COO,eclipse等,相比复杂不少。
做嵌入式开发的很少涉足高级平台,还好我一直在Windows平台做软件,从VC6.0到现在vs2013都有用过,熟悉的话很好上手,否则真的“很乱”。
感觉Atmel在以下方面需要用力:
1.文档不全,或者整理的不够好。在AS中就没有找到可用的文档,比如AS怎么用?怎么入门?被墙后文档怎么办?
对新手来说很难亮灯,我的文档就是亮灯,就需要很多的步骤,走了一些弯路,也是自己琢磨出来的。最后也没点亮!
而keil IDE中就有一个专门的文档标签。
如果对应的MCU页面文档再不全,真的就不行了。
2.AS真的很大很慢,本来是用VS的框架就很大了,Atmel自己就应该用点心!
我只需要SAM D21的程序包,也就30MB,但是AS把所有ARM MCU程序包全部放进去了,足有1.5GB之多。为什么不让用户用到时再下载呢?
keil中有package管理器,很好用!
GCC环境占用了约600MB空间。或许还有优化的空间?!
3.为什么升级一个EDBG固件这么麻烦?!
用过很多其它友商的ARM MCU评估版,都没有出现过升级调试器固件的问题!
之所以连带磁环的USB线都拿来测试,是因为有其他网友也遇到了升级的问题(AS6.2)!对方建议我试试带磁环的!该网友其实也未能解决升级固件的问题(但他在公司的一个电脑上升级成功了)!
为什么不升级EDBG固件就不能使用呢?考虑没考虑万一升级不成就费了的事情呢?
为什么升级一个EDBG固件就这么折腾呢?对环境要求太苛刻还是自己没测试好呢?其它友商怎么没这个问题呢?
基本同意楼主的看法,另外有关楼主的问题,我也发邮件问Nick了,目前还没有回复,大家等等。
不过对于第二点有关SAMD21的程序包,我有点不同看法,我认为Atmel把所有程序包都打包进去,虽然占了1.5GB,但是可能有他们的想法,因为据我所知,有一些做研发的公司,一不能上网,二不能用USB接口拷贝数据,比如我曾经去过一家公司,研发部门的USB充电都不行,需要报领导批准以后才可以。估计是怕有泄露知识产权的可能性,有些矫枉过正。因此,有些MCU的供应商就会考虑让客户安装一遍,就不需要额外的下载或者再次安装了。 当然,这也是建立在现代电脑硬盘够大,有地方放的前提下。 以前电脑空间小,编译器和调试器都是分开安装的。
嗯,songbin说的全打包的理由也有道理,但是现在厂商对程序包升级频繁(如解决bug,升级底层库等),如果公司闭网,岂不是闭关锁国!
无论如何都需要实时更新程序,而不是一次性解决(一次性是解决不了的,没有解决完的BUG!)。
大公司可以让项目经理通过git等方式更新库,即可解决公司闭网的问题。
但这不能作为AS可以很大的理由。我想等我用完SAM D21,再用L21时,AS7.0中的L21恐怕又过时了吧!这打包方式的意义和优点就不存在了!
MDK-ARM IDE深知其中意义!
断网或者内部网的确效率会很低,很多公司也知道,不过他们担心自己的成果被泄露,所以忍了。断网还不是极端的,有很多研发型企业电话都只能接,不能打出。现在因为手机普及了,所以还要规定上班时间不得使用手机等要求,当然,随着技术的进步,要完全管制会越来越难。 有点跑题了,回到Atmel的开发板问题上来,期待Atmel的朋友给一点好的建议。
我感觉是因为AS7,比较新并且是beta版本的,驱动可能是一些不兼容的可能性。
有这种可能,我联系了Microchip的paulzhang, 他会想办法帮助大家
昨天我试了一下我的开发板和软件我成功了
链接:Atmel SAM D21的开发板在 atmel studio 7.0建立工程
不知道是不是巧合,可以一块讨论一下。
好的,多谢。
我手上没板子,只能看大家玩
你们加油,我也学习学习
经确认,这个问题的确会在虚拟机上出现。
moyanming2013, 你尝试的方法可以解决吗?
这个问题是会在虚拟机中出现,Atmel给出了解决方案:
Firmware upgrade fails on VirtualBox - - Atmel Studio
但我测试发现,这个解决方案仍然解决不了。
目前正在跟Atmel Support Team讨论中,回头会给出解决方案。
我的不成功是在虚拟机下upgrade不成功。
不知道你是在主机还是虚拟机下测试的呢?
我的是在主机下测试的