Microduino-Module Zigbee/zh

来自Microduino Wikipedia
Bdharduino@126.com讨论 | 贡献2014年10月26日 (日) 16:02的版本 开发
跳转至: 导航搜索
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

文档

开发

如何向Zigbee模块刷写固件 目的



与其它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

视频