原创 [SAM R21]WSNdemo的测试

2014-12-17 23:39 1191 23 18 分类: MCU/ 嵌入式 文集: 开发板
从昨天折腾到今天,终于将WSNDemo测试成功。
 
从ASF中创建例程的步骤就不重复了。创建好LWMesh-WSNDemo-Application例程后,我们可以在项目管理器中看到还带有pdf应用笔记和WSNmonitor监视软件。AS6将这么多东西都打包进去了,难怪速度比较慢。
 
01.jpg  
 
 
在config.h中,我们可以看到下面的定义
 
#if APP_ADDR == 0x0000
#define APP_CAPTION     "Coordinator"
#define APP_NODE_TYPE   0
#define APP_COORDINATOR 1
#define APP_ROUTER      0
#define APP_ENDDEVICE   0
#elif APP_ADDR < 0x8000
#define APP_CAPTION     "Router"
#define APP_NODE_TYPE   1
#define APP_COORDINATOR 0
#define APP_ROUTER      1
#define APP_ENDDEVICE   0
#else
#define APP_CAPTION     "End Device"
#define APP_NODE_TYPE   2
#define APP_COORDINATOR 0
#define APP_ROUTER      0
#define APP_ENDDEVICE   1
#endif
 
 
APP_ADDR是0,就是Coordinator,小于0x8000是Router,否则才是End Device。因为只有两个SAM R21,所以只能一个设置成End Device,另一个设置为Coordinator。分别设置APP_ADDR为0和大于0x8000(这里设置为0x9012了),编译并分别下载到两个SAM R21中。下载后立刻就可以看到,随着End Device每两秒发一次数据(LED闪一次),Coordinator上的LED也同步闪一次,说明它们的之间无线通信已经连上。
 
 
再安装WSNMonitor,这是一个Java程序。
 
02.jpg  
 
 
使用这个软件前,需要进行参数设置。这里很关键,我就是在这里卡了一天才发现问题。点击File菜单下的Connect或者直接点工具栏上的第一个按钮,就进行参数设置。
 
03.jpg  
 
首先要指定Protocol目录,我们需要将它指定到WsnMonitor软件下的protocol目录。如果我们通过编辑栏右边的按钮去指定,会遇到一个坑,它会自动在目录名的最后添加.null,需要手工将它删除才行。
 
04.jpg  
 
然后在选择串口和设置串口参数。波特率要设置为38400,因为单片机是这样设置的。此外流控也必须设置,这是第二个坑,选择xon/xoff或者hardware都可以,就是不能选择none。
  
05.jpg
 
选择好后点击ok就开始联机了。如果没有错误,就可以看到下面的画面。如果没有看到,就说明你的设置错了,请在检查一下。
 
06.jpg  
 
 
当然我们也可以用其它串口软件,用HEX方式截取数据。可以看到数据包中 12 90 就是刚才设置的End device地址。
 
07.jpg  
 
PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

shaoziyang 2015-1-4 21:52

没错啊。我在其他论坛也常看到你的。

潜龙思瑞 2015-1-4 20:48

楼主的这篇文章,我怎么好像最近在哪里看过

ash_riple_768180695 2010-8-2 17:31

问得好!我认为,Altera对这个问题没有进行任何跨时钟域处理,理由是:很难或者不可能(比如采样I/O)获得原始数据对应的时钟。由于采样时钟与原始数据不同步产生的数据错误问题,需要设计者自己认识清楚,并承担其风险。

用户1303485 2010-7-30 22:50

signaltap的原理是在设计的网表中插入触发逻辑和存储逻辑以及用于和PC机通讯的虚拟JTAG链路实现嵌入式逻辑分析仪功能的。 我一直没想明白,quartus通过一个采样时钟,就可以采样检测任何其他时钟域的信号,它就能解决亚稳态的问题? riple能否也说说这个,谢谢~

ash_riple_768180695 2009-8-2 08:35

我对这个问题的看法是:增量编译是建立在Design Partition技术的基础之上的。Design Partition的目标是:源代码和约束没有变化的Partition是不需要重新编译和布局布线的。SignalTapII作为一个 Partition,由于其要观察的信号数量发生了变化,其重新编译和布局布线是不可避免的;但是设计的其他部分,作为被观察对象,是不需要重新编译和布局布线的,这样就有效地缩短了编译时间,并保持了原有设计的时序特性。SignalTapII的观察对象,可以有综合前、综合后、布局布线后三种基本网表,每一种网表由于其优化力度不同,其可被观察的信号数量和信号名称都是不同的。在包含SignalTapII的增量编译过程中,对布局布线后的网表中包含的信号进行观察是不需要对被观察的设计部分进行重新编译的,只有这样才能最大地发挥增量编译的效果;如果对其他两种网表进行观察,由于某些信号在布局布线过程中被优化掉了,要观察它们,势必要对被观察部分的设计重新进行布局布线并在布局布线过程中对这些原本被优化掉的信号加以保留,这样一来,增量编译就退化成了全编译,失去了增量编译的优势。不知道我说明白了没有?

用户1395232 2009-7-31 21:13

还有,请教ripple一个问题, 为什么打开cremental compilation后,signaltap中增加节点会默认为 post-fitting filter.有关文章是这么说的: Once your design is set up to use full incremental compilation, the SignalTap II Logic Analyzer acts as its own separate design partition. You can begin taking advantage of incremental compilation by using the SignalTap II: post-fitting filter in the Node Finder to add signals for logic analysis. 似乎这么说解释不通阿

用户1395232 2009-7-31 21:08

最近也遇到了这个问题 摘录一段话: Incremental compilation enables you to preserve the synthesis and fitting results of your original design and add the SignalTap II Logic Analyzer to your design without recompiling your original source code. This feature is also useful when you want to modify the configuration of the .stp file. For example, you can modify the buffer sample depth or memory type without performing a full compilation after the change is made. Only the SignalTap II Logic Analyzer, configured as its own design partition, must be recompiled to reflect the changes. ps,can't find the instance这个错误也遇到过,当时用的方法相当土,直接重新编译。真土

用户131284 2008-7-30 13:04

对于SignalTap的这一点我也深有感触!有时候只是去掉几个观测信号,结果程序工作就不正常了。现在对这种内嵌的调试手段十分怀疑,增加了不确定因素。不知道altera有没有解决这一问题的方法?听说logic lock约束有效果,riple你用过么

ash_riple_768180695 2008-1-13 19:19

谢谢“钱德拉”的回复,这一补充很是精采。

用户128735 2008-1-13 11:25

关于“测不准原理”,最近刚好碰到一个bug和其相关,记录在此全当是看了博主文章后的实践心得吧:

写了一个发包模块,因考虑到外用逻辑分析仪的引脚设置起来太麻烦,所以采用signaltapII,调试了5次之后终于发包正确了,自认为没问题了就打了个包存档,还跟老大汇报说OK了。结果集成到他的工程以后发现发的包是错的,我又回头看我的工程发的包明明是没问题的。搞了半天发现,我还是带着signaltapII测的,忽然想起楼主说的“测不准原理”,于是去掉signaltapII编译果然发的包是错的,重新加上signaltapII编译后又是好的,而且看里面的波形也看不到哪里逻辑有问题。

折腾了很久,最后的解决办法是:将编译选项的full ncremental complation给off掉,去掉sigaltapII编译后测发包,是错误的。然后加上signaltapII再编译,这时发包还是错误的了。好,带着signaltapII编译的情况下bug也出现了!接下来的事情就好办了,这时signaltapII抓出来的波形里面已经暴露出明显的逻辑错误了,改代码,编译,发包测试OK。然后再去掉signaltapII,再测,还是OK。于是这才算是真正OK了。

总结起来就是楼主说的几种情况之一:加了signaltapII后bug不出现了。希望其他兄弟引以为鉴,千万不要忘了去掉signaltapII再测试一遍!

至于为什么将编译选项的full ncremental complation给off掉后编译结果就比较真实,原因我还不太清楚,初步猜想可能是:不off掉的话是增量编译,不如完整编译的结果好,在此基础上添加的siganltapII的结果也不完全可信;一旦完整译过一次之后,内部逻辑和节点数据库都是可信的,那么在此基础上添加的siganltapII的可信度也会更高。以后如果找到针对于此的altera文档我在贴上来吧,兄弟们如果实在没办法的话可以用我这个土办法试一试。

相关推荐阅读
shaoziyang 2017-12-15 11:06
《micropython 入门指南》正式出版了
第一本专门介绍MicroPython的中文图书《MicroPython入门指南》由电子工业出版社正式出版了(各大书店和网络书店都有)。MicroPython是近年开源社区中最热门的项目之一,它功能强大...
shaoziyang 2017-11-01 15:30
《MicoPython入门指南》一书即将发行
《MicoPython入门指南》一书即将发行,这是第一本专业介绍MicroPython的中文书籍,请大家多关注和支持。​​...
shaoziyang 2017-07-13 19:50
micro:bit 专用电池扩展板
最近Microbit这么火,就想着要做点什么,于是就有了这个Microbit的专用电池扩展板。它完美配合原版的microbit,可以为microbit增加电池、蜂鸣器功能,功能上超过 MI:power...
shaoziyang 2017-06-13 09:09
用pyboard的dac播放音乐
官方的PyBoard带有DAC功能,使用DAC,我们可以播放简单的音乐。 先准备好两根铜丝,一个有源音箱,一个音频线。 然后从官方网站下载两个文件: http://micropython.org/...
shaoziyang 2017-06-13 09:03
microbit巡线小车 BoBBoT
BoBBoT 是一个使用 BBC micro:bit 控制的巡线小车套件,它很容易组装。 它特别为儿童设计,让孩子可以通过实践学习计算机科学概念。使用 BoBBoT 可以学习: 算法设计 (流程图和...
shaoziyang 2017-06-12 08:29
micropython升级到了 1.9.1
micropython升级到了 1.9.1,主要改进有: v1.9.1 修复了 stm32 的 USB 存储, lwIP 绑定和 VFS 问题 This release provides an imp...
EE直播间
更多
我要评论
2
23
关闭 站长推荐上一条 /3 下一条