|
|
(未显示5个用户的25个中间版本) |
第5行: |
第5行: |
| [[File: Microduino-zigbee-rect.jpg|400px|thumb|right|Microduino-Zigbee]] | | [[File: Microduino-zigbee-rect.jpg|400px|thumb|right|Microduino-Zigbee]] |
| | | |
− | Microduino采用CC2530芯片,是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。
| + | Microduino-Zigbee采用CC2530芯片,是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。 |
| | | |
| | | |
第55行: |
第55行: |
| | | |
| *引脚说明: | | *引脚说明: |
| + | [[file:Microduino-ZigbeePin1.JPG|thumb|600px|center|Microduino-Zigbee Front]] |
| + | [[file:Microduino-ZigbeePin2.JPG|thumb|600px|center|Microduino-Zigbee Front]] |
| {|class="wikitable" | | {|class="wikitable" |
| ! rowspan="1" | 芯片引脚 || Microduino引脚 || 功能 | | ! rowspan="1" | 芯片引脚 || Microduino引脚 || 功能 |
第68行: |
第70行: |
| | MOSI|||D11||SPI串行数据输入 | | | MOSI|||D11||SPI串行数据输入 |
| |- | | |- |
− | | TX ||RX0(orD2/D4)||模块串口发送脚(TTL电平),可接单片机的RXD | + | | TX ||RX0:D4(orD0/D2)||模块串口发送脚(TTL电平),可接单片机的RXD |
| |- | | |- |
− | | RX ||TX1(orD3/D5)||模块串口接收脚(TTL电平),可接单片机的TXD | + | | RX ||TX1:D5(orD1/D3)||模块串口接收脚(TTL电平),可接单片机的TXD |
| |} | | |} |
| | | |
| ==文档== | | ==文档== |
| + | AT命令文档:'''[[File:Zigbee_AT.pdf]]''' |
| | | |
| ==开发== | | ==开发== |
− | ===4.1 固件刷写=== | + | ===[[如何向Zigbee模块刷写固件]]=== |
− | '''目的'''
| |
− | *本教程介绍了Microduino-Zigbee固件的烧写流程,通过固件的烧写,读者可以方便的用串口操作来设置与读取Microduino-Zigbee的工作状态等。
| |
− | '''设备'''
| |
− | *'''[[Microduino-Zigbee]]'''
| |
− | Microduino-Zigbee 是以TI的CC2530芯片为核心的低功耗无线模块,采用Zigbee的通讯方式。该模块采用UPin-27接口,方便与其它Microduino模块叠加使用。
| |
| | | |
− | *其他硬件设备
| + | ===[[多种AT命令调试方式]]=== |
− | {|class="wikitable"
| |
− | |-
| |
− | |相关硬件||数量||功能
| |
− | |-
| |
− | |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仿真器实物见下图。
| |
− | [[File: SmartRF04EB_Real.jpg|600px|center|thumb]]
| |
− | SmartRF04EB仿真器引脚定义见下图。(备注:不同厂家的SmartRF04EB的9脚与10脚定义可能会有些不同)
| |
− | [[File: SmartRF04EB_PinMap.jpg|600px|center|thumb]]
| |
− | | |
− | SmartRF04EB驱动:[[File: SmartRF04EB drive.rar]]
| |
− | | |
− | 一篇不错的文档链接,供参考:http://www.docin.com/p-655448516.html
| |
− | | |
− | *SmartRF Flash Programmer
| |
− | SmartRF Flash programmer是TI公司的工具软件,使用它可以将.hex目标文件烧写进CC2530中。
| |
− | 界面见下图:
| |
− | [[File: SmartRF Flash programme_UI.jpg|600px|center|thumb]]
| |
− | 下载地址链接:http://www.ti.com/tool/flash-programmer
| |
− | | |
− | '''实验原理图'''
| |
− | *SmartRF04EB的1、2、3、4、7脚(其它引脚(SPI口)在分析Zigbee协议时会用到,下载与调试程序不需要)与Microduino—Zigbee模块的对应的孔用导线连接起来。对应关系为
| |
− | {|class="wikitable"
| |
− | |-
| |
− | | 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丝印层
| |
− | |-
| |
− | |}
| |
− | | |
− | 实物连接见下图:
| |
− | [[File:SmartRF04EB_Microduino-Zigbee.jpg|600px|center|thumb]]
| |
− | | |
− | '''调试'''
| |
− | *安装SmartRF Flash Programmer,目前版本为1.12.7。
| |
− | | |
− | *打开Flash Programmer软件,在“What do you want to program?”下拉列表中选择Program CCxxxx SoC or MSP430;
| |
− |
| |
− | 在Flash image一栏选择要打开的.hex目标文件 [[File: Microduino-Zigbee V0.1.rar]];在Actions单选框选中Erase program and verify;见下图
| |
− | [[File: SmartRF software setup.jpg|600px|center|thumb]]
| |
− | *用USB线连接电脑与SmartRF04EB,用两端分别为公头母头的导线连接SmartRF04EB与Microduino-Zigbee,见实验原理图。用手捏紧连入焊盘的三根线。
| |
− | *烧录固件之前,按下SmartRF04EB上的复位按键,CC2530的芯片会被识别。也可以点击Read IEEE,界面会显示该CC2530芯片的IEEE地址。
| |
− | 点击Perform action开始烧录,静等一会吧。待界面最下方的进度条走完,恭喜,烧录固件完成了。烧录进行中界面见下图。
| |
− | [[File: SmartRF software burn .jpg|600px|center|thumb]]
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | ===4.2 与其它Microduino模块的连接===
| |
− | | |
− | '''目的'''
| |
− | *本教程通过对Microduino-Zigbee与其它Microduino模块连接的介绍,方便读者灵活使用Microduino系列产品。
| |
− | '''设备'''
| |
− | *'''[[Microduino-Zigbee]]'''
| |
− | Microduino-Zigbee 是以TI的CC2530芯片为核心的低功耗无线模块,采用Zigbee的通讯方式。该模块采用UPin-27接口,方便与其它Microduino模块叠加使用。
| |
− | | |
− | *'''[[Microduino-Core]]'''
| |
− | Microduino-Core 是以 Atmel ATmega328P为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块
| |
− | | |
− | *'''[[Microduino-Core+]]'''
| |
− | Microduino-Core 是以 Atmel ATmega644PA 为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块
| |
− | | |
− | *'''[[Microduino-USBTTL]]'''
| |
− | 下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。
| |
− | | |
− | *其他硬件设备
| |
− | {|class="wikitable"
| |
− | |-
| |
− | |相关硬件||数量||功能
| |
− | |-
| |
− | |USB数据连接线 ||1条||连通Microduino模块与计算机
| |
− | |-
| |
− | |面包板跳线 ||1盒||电气连接线。
| |
− | |-
| |
− | |}
| |
− | | |
− | '''实验方式'''
| |
− | * Microduino-USBTTL与Microduino-Zigbee。
| |
− | Microduino-USBTTL与Microduino-Zigbee不能直接叠加。
| |
− | 连接方式应为
| |
− | {|class="wikitable"
| |
− | |-
| |
− | | Microduino-USBTTL || Microduino-Zigbee
| |
− | |-
| |
− | | GND || GND
| |
− | |-
| |
− | | 3V3||3V3
| |
− | |-
| |
− | | RX0 || D2
| |
− | |-
| |
− | | TX1|| D3
| |
− | |-
| |
− | |}
| |
− | | |
− | 实物连接见下图
| |
− | [[File: usbttl-zigbee.jpg|600px|center|thumb]] | |
− | | |
− | 确认导线连接无误后插入USB数据线,然后打开串口调试助手。串口调试助手下载:[[File: com assist.rar]]
| |
− | 串口调试助手软件界面见下图:
| |
− | [[File: com assist UI.jpg|600px|center|thumb]]
| |
− | 串口如果没有打开,可以点击串口号的列表框按钮查询。发送新行的复选框应该选上对勾。在字符串输入框输入“+++”,点击发送,可以看到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库。
| |
− | 程序如下:
| |
− | <source lang="cpp">
| |
− | /*
| |
− | 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);
| |
− | | |
− | }
| |
− | </source>
| |
− | 因为Microduino-core自带重启按钮,通过AT指令设定完参数后,可以点击重启按钮,设置好的参数会自动保存。
| |
− | | |
− | * Microduino-USBTTL与Microduino-Core+与Microduino-Zigbee。
| |
− | 三个模块可以直接叠加。程序如下
| |
− | <source lang="cpp">
| |
− | | |
− | 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);
| |
− | | |
− | }
| |
− | </source>
| |
− | | |
− | | |
− | '''结果'''
| |
− | 输入AT指令,在串口调试助手或是Arduino IDE自带的串口中观察数据。调用SoftwareSerial库时,在115200波特率下会有乱码。
| |
| | | |
| ==应用== | | ==应用== |
| + | ===[[监视器透传实验]]=== |
| + | ===[[透传点灯实验]]=== |
| + | ===[[组网串口监视实验]]=== |
| + | ===[[组网点灯实验]]=== |
| | | |
| ==购买== | | ==购买== |