“Microduino-Module Zigbee/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
开发
第215行: 第215行:
 
<source lang="cpp">
 
<source lang="cpp">
 
/*
 
/*
  core hardware(RX0,TX1) ==9600
+
  core hardware(RX0,TX1) =9600
 
  core software(D2,D3)=9600  must match with cc2530 setup.when change cc2530 baud  rate
 
  core software(D2,D3)=9600  must match with cc2530 setup.when change cc2530 baud  rate
 
*/
 
*/
第292行: 第292行:
 
'''结果'''
 
'''结果'''
 
*输入AT指令,在串口调试助手或是Arduino IDE自带的串口中观察数据。调用SoftwareSerial库时,在115200波特率下会有乱码。
 
*输入AT指令,在串口调试助手或是Arduino IDE自带的串口中观察数据。调用SoftwareSerial库时,在115200波特率下会有乱码。
 
 
  
 
===透传点灯实验===
 
===透传点灯实验===

2014年10月26日 (日) 10:12的版本

Language English
Microduino-Zigbee

Microduino采用CC2530芯片,是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。




特色

  • CC2530 结合了领先的RF 收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其它强大的功能;
  • CC2530 具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短进一步确保了低能源消耗;
  • 串口透传功能;
  • 预留CCDEBUG接口,方便用户二次开发;
  • 足够的功率,轻松达到百米无线;
  • 小巧、便宜、堆叠、开放;
  • 开源的硬件电路设计,与 Arduino 兼容的编程开发环境程;
  • 统一的 Microduino 接口规范,和丰富的外围模块,可方便、灵活的与其他符合 Microduino 接口规范的模块、传感器进行快速的连接和扩展;
  • 2.54间距的排母接口方便集成到洞洞板。

规格

电器规格

  • RF/布局
    • 适应2.4-GHz IEEE 802.15.4 的RF 收发器
    • 极高的接收灵敏度和抗干扰性能
    • 可编程的输出功率高达4.5 dBm
    • 适合系统配置符合世界范围的无线电频率法规:ETSI EN 300 328 和EN 300440(欧洲),FCC CFR47 第15 部分(美国)和ARIB STD-T-66(日本)
  • 低功耗
    • 主动模式RX(CPU 空闲):24 mA
    • 主动模式TX 在1dBm(CPU 空闲):29mA
    • 供电模式1(4 μs 唤醒):0.2 mA
    • 供电模式2(睡眠定时器运行):1 μA
    • 供电模式3(外部中断):0.4 μA
    • 宽电源电压范围(2 V–3.6 V)
  • 微控制器
    • 优良的性能和具有代码预取功能的低功耗8051 微控制器内核
    • 256KB 的系统内可编程闪存
    • 8-KB RAM,具备在各种供电方式下的数据保持能力
    • 支持硬件调试
  • 外设
    • 21个通用IO口
    • 5个DMA控制器
    • 定时器1(16位),定时器3、4(8位),定时器2(MAC)
    • 具有捕获功能的32KHz睡眠定时器
    • 具有8 路输入和可配置分辨率的ADC
    • 2个支持多种串行通信协议的USART
  • 引脚说明:
芯片引脚 Microduino引脚 功能
RES RST 器件复位
SCLK D13 SPI串行时钟输入
CS A1 SPI从选择输入
MISO D12 SPI串行数据输出
MOSI D11 SPI串行数据输入
TX RX0(orD2/D4) 模块串口发送脚(TTL电平),可接单片机的RXD
RX TX1(orD3/D5) 模块串口接收脚(TTL电平),可接单片机的TXD

文档

开发

固件刷写

目的

  • 本教程介绍了Microduino-Zigbee固件的烧写流程,通过固件的烧写,读者可以方便的用串口操作来设置与读取Microduino-Zigbee的工作状态等。

设备

Microduino-Zigbee 是以TI的CC2530芯片为核心的低功耗无线模块,采用Zigbee的通讯方式。该模块采用UPin-27接口,方便与其它Microduino模块叠加使用。

  • 其他硬件设备
相关硬件 数量 功能
SmartRF04EB 1 CC2530仿真器,可实现CC2530的固件烧写与调试。
USB数据连接线 1条 连通SmartRF04EB与计算机。
面包板跳线 1盒 电气连接线。
  • SmartRF04EB

SmartRF04EB是TI发布的CC开发工具,可支持CC2430,CC2530等。支持常用多种调试手段如下载、仿真、断点、单步、全速、擦除、读取等。可以与IAR7.51、IAR8.10版本很好的衔接。 通过TI提供的SmartRF Flash Programmer软件,可方便的实现flash的擦除与烧写。SmartRF04EB驱动下面提供了下载链接。如果安装了IAR软件,那么驱动的位置在D:\Program Files\IAR Systems\Embedded Workbench 6.0 Evaluation\8051\drivers\Texas Instruments\win_32bit_x86,系统发现新硬件后可选择路径安装或是在设备管理器下面选择更新驱动程序。(备注:笔者安装IAR时路径选择在D:\Program Files\下面,系统为WIN7 32位。) SmartRF04EB仿真器实物见下图。

SmartRF04EB仿真器引脚定义见下图。(备注:不同厂家的SmartRF04EB的9脚与10脚定义可能会有些不同)

SmartRF04EB驱动:文件:SmartRF04EB drive.rar

一篇不错的文档链接,供参考:http://www.docin.com/p-655448516.html

  • SmartRF Flash Programmer

SmartRF Flash programmer是TI公司的工具软件,使用它可以将.hex目标文件烧写进CC2530中。 界面见下图:

下载地址链接:http://www.ti.com/tool/flash-programmer

实验原理图

  • SmartRF04EB的1、2、3、4、7脚(其它引脚(SPI口)在分析Zigbee协议时会用到,下载与调试程序不需要)与Microduino—Zigbee模块的对应的孔用导线连接起来。对应关系为
SmartRF04EB Microduino—Zigbee
Pin1 GND GND 见PCB丝印层
Pin2 +3.3V VDD 见PCB丝印层
Pin3 DC C_DC 见PCB丝印层
Pin4 DD C_DD 见PCB丝印层
Pin7 RESET RST 见PCB丝印层

实物连接见下图:

调试

  • 安装SmartRF Flash Programmer,目前版本为1.12.7。
  • 打开Flash Programmer软件,在“What do you want to program?”下拉列表中选择Program CCxxxx SoC or MSP430;

在Flash image一栏选择要打开的.hex目标文件 文件:Microduino-Zigbee V0.1.rar;在Actions单选框选中Erase program and verify;见下图

  • 用USB线连接电脑与SmartRF04EB,用两端分别为公头母头的导线连接SmartRF04EB与Microduino-Zigbee,见实验原理图。用手捏紧连入焊盘的三根线。
  • 烧录固件之前,按下SmartRF04EB上的复位按键,CC2530的芯片会被识别。也可以点击Read IEEE,界面会显示该CC2530芯片的IEEE地址。

点击Perform action开始烧录,静等一会吧。待界面最下方的进度条走完,恭喜,烧录固件完成了。烧录进行中界面见下图。




与其它Microduino模块的连接

目的

  • 本教程通过对Microduino-Zigbee与其它Microduino模块连接的介绍,方便读者灵活使用Microduino系列产品。

设备

Microduino-Zigbee 是以TI的CC2530芯片为核心的低功耗无线模块,采用Zigbee的通讯方式。该模块采用UPin-27接口,方便与其它Microduino模块叠加使用。

Microduino-Core 是以 Atmel ATmega328P为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块

Microduino-Core 是以 Atmel ATmega644PA 为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块

下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。

  • 其他硬件设备
相关硬件 数量 功能
USB数据连接线 1条 连通Microduino模块与计算机
面包板跳线 1盒 电气连接线。

实验方式

  • Microduino-USBTTL与Microduino-Zigbee。

Microduino-USBTTL与Microduino-Zigbee不能直接叠加。 连接方式应为

Microduino-USBTTL Microduino-Zigbee
GND GND
3V3 3V3
RX0 D2
TX1 D3

实物连接见下图

确认导线连接无误后插入USB数据线,然后打开串口调试助手。串口调试助手下载:文件:Com assist.rar 串口调试助手软件界面见下图:

串口如果没有打开,可以点击串口号的列表框按钮查询。发送新行的复选框应该选上对勾。在字符串输入框输入“+++”,点击发送,可以看到Zigbee模块回馈的信息了。 笔者用的波特率是9600。可以输入AT+BAUD=0X设定Zigbee模块的波特率,输入AT+SRST点击发送后重启Zigbee模块可以保存设置值,下次上电无需再设置了。 更多输入指令(AT指令)的含义会在后续文档中介绍。


  • Microduino-USBTTL与Microduino-Core与Microduino-Zigbee。

Microduino-USBTTL与Microduino-Core与Microduino-Zigbee三个模块可以直接叠加。叠加后需要在Microduino-Core的程序中写入程序,用到SoftwareSerial库。 程序如下:

/*
 core hardware(RX0,TX1) =9600
 core software(D2,D3)=9600  must match with cc2530 setup.when change cc2530 baud  rate
*/
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
String myStringSoftCom="";
String myStringHardCom="";
void setup()  
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
}

void loop() // run over and over
{
     while (Serial.available() > 0)  
    {
      myStringHardCom += char(Serial.read());
      delay(2);
    }
     mySerial.println(myStringHardCom); 
     myStringHardCom="";
     while (mySerial.available() > 0)  
    {
     myStringSoftCom += char(mySerial.read());
     delay (2);
    }
     if (myStringSoftCom.length() > 0)
    {   
         Serial.println(myStringSoftCom);
         myStringSoftCom="";
    }
    delay(100);
}

因为Microduino-core自带重启按钮,通过AT指令设定完参数后,可以点击重启按钮,设置好的参数会自动保存。


  • Microduino-USBTTL与Microduino-Core+与Microduino-Zigbee。

三个模块可以直接叠加。程序如下

String myStringSerial1="";
String myStringSerial="";
void setup()  
{
  Serial.begin(9600);
  Serial1.begin(9600);
}

void loop() // run over and over
{
     while (Serial.available() > 0)  
    {
      myStringSerial += char(Serial.read());
      delay(2);
    }
     Serial1.println(myStringSerial); 
     myStringSerial="";
     while (Serial1.available() > 0)  
    {
     myStringSerial1 += char(Serial1.read());
     delay(2);
    }
     if (myStringSerial1.length() > 0)
    {   
         Serial.println(myStringSerial1);
         myStringSerial1="";
    }
    delay(100);

}

结果

  • 输入AT指令,在串口调试助手或是Arduino IDE自带的串口中观察数据。调用SoftwareSerial库时,在115200波特率下会有乱码。

透传点灯实验

应用

购买

历史

图库

正面

Microduino-Zigbee Front

背面

Microduino-Zigbee Back

视频