5912|2

3

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430-RF2500使用心得(1) [复制链接]

没玩过MSP430,正好有个设计任务,申请后很快得到回复,试验装到达后发现东西很精致,不错!

首先在TI官方网站了解了MSP430-RF430的特性以及用途,及其使用现状。然后直接进入SimpliciTI协议的研究,SimpliciTI是很简单的LISTEN(),LINKTO()模式,END DEVICE只需一次握手就可以传输数据(平时都是LMP3模式),这里对END DEVICE的数量有限制。然后,进入程序源代码研究,ACESS POINT主要是3个分支:sJoinSem BranchsPeerFrameSem BranchsSelfMeasureSem Branch。由于想要在采集数据方向做开发,仔细研究了sPeerFrameSem Branch和END DEVICE的代码。SMPL_Ioctl(IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_SIGINFO, (void *)&sigInfo)函数已经从ED传入信息,定位到transmitData函数,在此,AP已经做了一个int转char的变化(由于要在通过串口传入电脑内部监视软件),然后查看的ED代码的温度采集函数,研究了ADC10的相关定义,通过和基准电压1.5v比较,10位AD转换,精度达到mv级发现自带温度传感器是10通道,修改其内部温度传感器采集代码成ADC10CTL1 = INCH_0 ; ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE + REF2_5V; 查表得到其0通道对应A0,其外部扩展引脚是P3,现在测试如下:

现在给P3引脚外接1.6V电源,

 

由于外接电压冲击,温度上升。


我需要对几微伏的1Hz左右的信号进行放大、整形、识别,而且有很强的工频干扰,下一步着眼在定时器方向和MSP430内部功能研究,让信号模式(频谱)的改变能触发射频输出,这样可以大大降低能耗,提高效率。

最新回复

顶原创  详情 回复 发表于 2011-4-24 08:16
 
点赞 关注

回复
举报

110

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
顶原创
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

附件

外部电路必须先将信号的电压抬高,我用锗二极管结压降获得0.23伏的标准电压,使其波动电信号保持为正(0.0v~0.4v间),然后利用可编程运放将信号放大,接着将放大后的信号通过AD采集并转换,并将转换结果通过串口发送到电脑,方便后面的数据处理。

    应用到的单片机模块有可编程集成运放模块、AD转换模块、定时器模块、串口(UART)模块。

    1、外部硬件电路的设计

    首先,压电传感器过来的信号是一个波动的信号,有正有负,并且可能还有一定程度的干扰。用万用表测量压电传感器过来的信号,大概在-200mV-200mV之间,由于430单片机无法采集负向电压,故只能想办法将电压抬高,使其为正,方便单片机采集。有两个方案,一个是直接接一个恒压源,将电压抬高;另一个是接一个导通的锗二极管,由于锗二极管的导通压降刚好为0.2V,故刚好补偿到负向的电压。由于第二个方案电路比较简单,而且实施方便,价格便宜,故采用第二方案。

    在接入运放之前接一个电阻是不可行的,试验过了电压很不准确,故将电阻去掉;而且,二极管导通串联的电阻不宜过大,我曾接过2M10k、还有1k的电阻,结果1k的最理想。

    2、集成运放、AD、定时、串口的配置属于单片机软件编程的范畴,这里就不一一赘述,只将大概参数介绍如下:

    集成运放:放大倍数为4,设置为同相比例放大;

    AD转换:采样通道位A1(A1接运放输出),参考电压为VCC=3.6V

    定时器:定时器主要设置发送数据的时间,设置为0.1s,即每0.1秒采集一次电压信号,并将数据通过串口发送给电脑;

    串口:  波特率设置为9600,通过软件将数据生成位txt文档,方便记录和整理;

    3、我们最终做到的是将电压精度提高为0.01V;



    遇到问题:

    硬件上有一个问题比较麻烦,不好解决;由于外部电路比较简单,我是直接用万用板将元件焊接上去,并通过排阵将其引出,接到单片机,而且传感器的输出接口也是标准的音频6.5mm的接口,我也是买了底座,并用导线焊在底座上,这样通过杜邦线连接起来的电路有时会不牢固,会造成接触不良,直接导致采集的电压不准确。信号采集如果发生差错,会对后面的数据处理和分析造成很大的影响,所以这个问题要好好考虑一下解决办法。不过我想以后的成品肯定是接触良好的PCB板,应该不会有太大问题。

    软件上有关修改串口波特率的程序还没弄好,现在用的是9600的波特率,要改成38400居然遇到了一定的困难,这让我感觉很困惑。本来觉得有关波特率的修改应该只是寄存器的配置,很简单才对,想不到会搞不定。这个还要在仔细看一下datasheet,应该可以解决。



    集成运放开发过程所遇到的问题:

    之前一直在搞集成运放的编程,一直都出现问题,现将所走的弯路简述如下:

    首先说说我的大概开发流程:先看实验板附带的源代码,大概看懂了整个框架之后开始看集成运放(AO)的介绍,MSP430F2274一共有2个集成运放,每个集成运放的放大倍数在1~16之间,可以通过寄存器的配置来设置其放大倍数。然后在网上搜索430有关集成运放的应用程序,看了之后觉得OK了,就开始写程序了。

    遇到的第一个问题是:开发软件IAR的软件配置有问题,导致无法下载程序,主要有2个设置需要注意,一个是在主控芯片的选择上,当新建工程时默认的是MSP430家族,而不是某个具体的芯片,需要将芯片选择位MSP430F2274;还有在Debug选项下的driver要选择FET Debug,一开始选择了Simulink,结果只是看到仿真的效果;

    第二个问题是实验板太小,而且一开始没把排阵焊上去,造成了测量的麻烦,因为集成运放主要看是否实现了放大电压的功能,我一开始只是在输入端加一个给定电压,接着用万用表在输出端测量输出电压,这样操作起来特别不方便,而且一个人根本无法完成这个测试的工作,经常要找其他人帮忙,很麻烦;

    最后解决方法:最后我是在集成运放后面在加入AD转换,并将转换结果通过串口输出到电脑,看其输出结果是否有倍数的关系,这样,要做集成运放,就要先解决AD和串口的编程,也花费了不少时间;

    第三个问题是在加入二级运放上,那时候刚弄出一级运放,打算一鼓作气把二级运放搞定,以为很简单,结果还是搞了一个上午,因为二级运放要设置成级联PGA模式,设置错了。


总之,这个精致的装置确实很好很强大,基本完成我的实验,唯独内存较小,滤波与判读还是在pc上完成,如果选择其它型号的430芯片,应该可以在片上完成,这样

无线传输的数据量也会变小,大大提高能量-数据效率,这个装置再经过一些测试就会安排手版的设计,无论如何,我们已经选定430。


 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表