初识ez430-rf2500
有幸从论坛申请到了ez430—rf2500,起初只是抱着好奇学一下的,当时完全不知道这个无线传输,也没学过430。拿到板子就自己上google搜了一下,介绍得比较详细,以下内容来自Google:
德州仪器(TI)日前宣布推出一款针对嵌入式系统设计的新工具eZ430-RF2500,该工具结合了超低功耗MSP430微控制器(MCU)与无线通信功能,从而进一步简化了低功耗无线系统的开发工作。最新开发工具采用便于携带的USB记忆棒形式,其中包含两个支持RF功能的微控制器目标板与一个可用于开发独立无线项目的PC调试接口。开发人员将能够更加轻松地构建低功耗无线系统,满足各种创新应用的要求,如传感与计量、家庭安全与自动化以及医疗等。
eZ430-RF2500建立在TI于2006年早些时候推出的eZ430-F2013开发工具的基础之上。eZ430-RF2500为结合无线通信功能的低功耗设计开启了新的创新机遇。由于从2006年晚些时候就开始独立销售的F20xx目标板向后兼容,eZ430-RF2500为增强现有设计提供了连续性。
TI负责MSP430的产品市场营销经理Cornelia Huellstrunk指出:“我们认识到对于eZ430-F2013的需求很旺盛,客户迫切需要目标板具备多通用灵活性,以便于开发各种客户终端产品。我们认为支持无线功能的低成本工具正在成为开发人员的下一个‘必选’工具。随着越来越多的应用需要无线通信功能,借助eZ430-RF2500,我们能够全力满足市场需求。”
便于无线MCU开发的完整低成本解决方案
eZ430-RF2500开发工具在邮票大小的目标板上提供了MSP430 MCU与低功耗RF 2.4GHz收发器编程必需的软硬件功能。新型eZ430-RF2500工具不仅为编写代码提供了完整解决方案,还能现场运行并测试应用。
USB记忆棒的形式的开发接口能直接插入PC端口,无需额外驱动程序软件,然后就能直接连接至MCU-RF目标板eZ430-RF2500T。eZ430-RF2500套件包含两个目标板,为开发人员提供了无线网络的基本功能。套件还配套提供电池组(AAA),使目标板能作为独立系统工作。由于采用标准通孔引脚连接器,因此外部组件或现有系统连接到目标板上会非常方便。目标板的特性还包括采用两个可编程LED来显示工作状态,用一个可编程开关按钮来控制接口,还采用集成式零功耗掉电检测器,在电力下降时可复位MSP430。
eZ430-RF2500T目标板集成了TI推出的MSP430F2274 MCU 与CC2500 RF收发器。基于16位RISC架构的MSP430F2274 MCU采用32KB闪存与1KB RAM,能处理大量代码与数据。MSP430F2274还具备高性能集成式模拟,如12通道的10位模数转换器(ADC),采样速度高达200KSPS。其它片上外设还包括两个运算放大器,支持UART、SPI、I2C与IrDA通信。MCU提供五种低功耗模式,能最大化电源效率,在不到1微秒的时间内就能从待机模式超快唤醒。CC2500是一种高集成度多通道RF收发器,专为采用2.4GHz工业、科学及医药设备(ISM)频带的低功耗无线应用而设计。它具备自动分组引擎(packet engine),支持1.2~500 kbps的数据传输速率。
eZ430-RF2500套件配备无线MSP430应用编程所需的全部软件,USB开发接口为目标板上的仿真和调试提供了需要的硬件。用户可选择IAR Embedded Workbench IDE或TI的Code Composer Studio Essentials IDE来编写并下载代码,用硬件断点和单步进(single stepping) 进行全速应用调试,不会消耗额外的硬件资源。该套件的软件包括针对低功耗RF网络的协议栈与硬件抽象层(HAL),有助于无线系统的快速设计和原型定义。此外,该套件还通过无线传感器网络提供完整的范例项目、测量温度与电压等,此外还提供有关工具与软件的全部文档材料。
接着看它自带的光盘,里面的内容是:一个例程(iar),一个上位机,两个TI的官方开发软件(iar,cce),pdf文档(eZ430-RF2500_User Guide_SLAU227,A_Wireless_Sensor_Monitor_Using_the_eZ430-RF2500_(SLAA378),cc2500,msp430f2274 MSP430x2xx_Family_User's_Guide_(Rev._D)_slau144d)。就这么多,全是英文资料。
五个文档,其中cc2500,msp430f2274和msp430x2xx_Family_User’s_Guide是介绍芯片的,ez430-rf2500_user Guide_slau227是对整个模块做一个大致介绍的,A_Wireless_Sensor_Monitor_Using_the_eZ430-RF2500_(SLAA378)是讲解已经烧写到模块里的例程。
先来看user guide。整个ez420-rf2500套件里面包含四个部分,两个用于无线传输的目标板,一个用于下载调试程序的usb板,再加上一个给目标板供电的3v电池。两个目标板硬件上是一模一样的。一个上面有用黑色标记笔写的E,另一个上面写的A。E表示End Device,工作的时候,这个目标板由电池供电,用于采集数据并发送出去。A表示Access Point,用于把接收到的数据送往电脑。工作的时候,两个板不能弄混淆,否则收不到数据。
使用的时候,End Device和电池相连接,Access Point和USB板连接。USB板连上电脑后后,系统会提示发现新硬件。此时,如果电脑上已经安装了IAR,新硬件驱动会自动装好。虽然TI提供的两种开发软件IAR和CCE都可以用于开发此套件,但还是建议用IAR,因为自带的例程使用iar写的。驱动安装好后,会显示如下:
USB板连上电脑后,Access Point上面红灯闪烁,表明它正在通过UART向PC发送信息。此时,把End Device和电池相连。End Device上电后,它上面的红绿灯一起闪烁,表示正在搜寻Access Point。当End Device和Access Point连接上后,End Device上的红灯熄灭,绿灯继续闪烁。此时Access Point上的绿灯开始闪烁,表明接收到了数据。
然后,我们打开eZ430-RF2500 Sensor Monitor软件,单击Menu,单击Connect。这时,Access Point就和PC连接上了。我们打开Menu下的Console,就可以看到由End Device采集到的数据。如下图:
以上是此开发套件的自带例程。例程里面采集的信息有两个,一个是电池的电压,一个是温度。接下来,我们把程序做一个小小的修改,用End Device采集一个外界电压。
例程的demo_ED.c里面的linkTo()函数里面,有这样一小段代码:
ADC10CTL1 = INCH_10 + ADC10DIV_4; // Temp Sensor ADC10CLK/5
ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE + ADC10SR;
for( degC = 240; degC > 0; degC-- ); // delay to allow reference to settle
ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
__bis_SR_register(CPUOFF + GIE); // LPM0 with interrupts enabled
results[0] = ADC10MEM;
ADC10CTL0 &= ~ENC;
要看懂这段程序需要了解430f2274的AD寄存器配置,打开msp430x2xx_Family_User’s_Guide。先看ADC10 Block Diagram:
然后通过查找寄存器的定义可以知道INCH_10表示第10通道,第10通道是温度传感器,可以直接测量温度。我们把它修改为第一通道A0,然后找到A0对应的引脚P2.0,把P2.0设置为输入,并用导线将其与所需测量的电压连接起来,修改测得数据与电压的对应关系。编译下载,我们就能在电脑上看到测量点的温度了。修改后的代码如下:
ADC10CTL1 = INCH_0;
ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON + ADC10IE + REF2_5V; for( degC = 240; degC > 0; degC-- ); // delay to allow reference to settle
ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
__bis_SR_register(CPUOFF + GIE); // LPM0 with interrupts enabled
results[0] = ADC10MEM;
ADC10CTL0 &= ~ENC;
匆匆忙忙的写了一些心得体会,由于最近一直还在找工作,所以没能花费太多时间还试用,实在抱歉!~待工作确定,有时间的时候还会深入的研究一下!~
|