匿名
未登录
登录
丢石头百科
搜索
查看“Core2530-XCore2530 用户手册”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
Core2530-XCore2530 用户手册
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== Zigbee组网实验 == Zigbee组网最少需要一个协调器和一个路由器,模块出厂后内置Bootloader,可以直接通过串口将固件下载到模块。 '''注:组网通信实验需要Core2530/XCore2530两块,ZB502/ZB600底板两块。''' === Zigbee角色介绍 === '''1. 协调器(Coodinator)''' * 选择一个频道和PAN ID,组建网络 * 允许路由和终端结点加入这个网络 * 对网络中的数据进行路由 * 必须保持供电,不能进入睡眠状态 * 可以为睡眠的终端结点保留数据,至其唤醒后取回 '''2. 路由器(Router)''' * 在进行数据收发之前,必须首先加入一个Zigbee网络 * 本身加入网络后,允许路由和终端结点加入 * 加入网络后,可以对网络中的数据进行路由 * 必须保持供电,不能进入睡眠状态 * 可以为睡眠的终端结点保留数据,至其唤醒后取回 '''3. 终端(End Device)''' * 在进行数据收发之前,必须首先加入一个Zigbee网络 * 不允许其他设备加入 * 必须通过其父节点收发数据,不能对网络中的数据进行路由 * 可由电池供电,必要时可以进入睡眠状态 === Bootloader === '''1. Bootloader简介''' 利用模块内置的Bootloader,用户可以通过串口直接下载应用程序而不需要CC Debugger;但Bootloader的烧录必须通过CC Debugger。 模块提供两种Bootloader:bootloader.hex和bootloader_wait.hex,为便于描述,本手册分别将烧录了bootloader.hex和bootloader_wait.hex的模块命名为A和B。 A上电后,如果Flash内部应用程序有效,则立刻开始执行;否则LED1闪烁,表示没有应用程序,可以通过串口进行下载 B上电后,如果Flash内部应用程序有效,LED1和LED2交替闪烁,用户按下KEY2(ZB502)或者摇杆中键(ZB600)时,模块开始执行程序。按下KEY1,LED1闪烁,进入Bootloader模式,允许重新下载应用程序。40秒内无按键操作则自动执行用户程序。如果Flash内部应用程序无效,则LED1闪烁,表示没有应用程序,可以通过串口进行下载。 A适合独立使用,不需要外部按键触发,就能立即进入程序;B适合配套ZB502/ZB600底板,进行实验和学习。模块出厂默认烧录B。 '''2. CC debugger驱动安装''' * 解压例程提供的软件包CC-Debugger_Drivers.7z到安装目录中。 * 双击 Setup_SmartRF_Drivers-1.2.0.exe 打开安装程序 * 点击Next,选择安装路径 [[File:Core2530-XCore2530-User-Manual-1.jpg]] * 点击 Install,等待安装完成 [[File:Core2530-XCore2530-User-Manual-2.jpg]] * 安装结束后,连接CC Debugger到电脑,打开windows 设备管理器,如有下图显示的硬件,说明驱动安装成功。 [[File:Core2530-XCore2530-User-Manual-3.jpg]] '''3. 烧录Bootloader''' * 将模块安装到底板上,通过USB线连接电脑,同时连接CC Debugger * 打开底板电源,按下CC Debugger上的RESET按键,如果指示灯变为绿色说明通信正常,可以下载。 * 打开SmartRF Studio7,选择软件右上角Flash Programmer并打开。 [[File:Core2530-XCore2530-User-Manual-4.jpg]] * 选择Program CCxxxx Soc or MSP430,Flash image处选择需要下载的烧录文件,这里选择bootloader_wait.hex,单击Perform actions开始下载。 [[File:Core2530-XCore2530-User-Manual-5.jpg]] * 如果底部出现信息: program and verify OK,同时底板LED1开始闪烁,说明下载成功。 [[File:Core2530-XCore2530-User-Manual-6.jpg]] === 固件下载 === 这里以两套Core2530 + ZB600为例,分别烧录协调器和路由器固件,完成组网。为方便描述,将这两套系统称为A和B。 * 将A、B通过USB线接入电脑,上电后分别记录对应的串口号 * 如果之前已有固件,重新复位A或B后,LED1和LED2会交替闪烁(若使用XCore2530则只是LED1快速闪动),需要按KEY1进入Bootloader模式,进入后LED1闪烁。如果没有固件,上电后LED1闪烁,说明直接进入Bootloader模式,不需要按KEY1。 * 打开串口烧录软件 [http://{{SERVERNAME}}/w/upload/6/64/SerialBootTool_1_3_2.zip Serial Boot Tool] [[File:Core2530-XCore2530-User-Manual-7.jpg]] * Select File选择 Coordinator.bin 固件,Port Setting 选择对应串口,波特率选择115200,点击 Load Image开始下载,等待下载结束。 * B选择Router.bin固件,下载方式同上。 * 打开两个串口调试助手,串口号分别对应A和B,波特率38400、数据位8、停止位1。 * 重新复位A,LED1和LED2交替闪烁,按下摇杆中键,等待串口输出 “Coordinator ok”,LED3点亮,说明网络建立成功。 * 重新复位B,LED1和LED2交替闪烁,按下摇杆中键,等待串口输出“Router ok”,LED3点亮,说明路由器已经加入网络,'''组网成功'''。(如果没有外接天线,建议将B天线接口靠近A天线接口,确保组网时的信号强度) '''注:''' '''1. ZB600的摇杆中键对应ZB502的KEY2键''' '''2. Xcore2530内置功率放大器(PA)功能,占用了P1_1和P1_4引脚,所以复位后LED2不闪烁,组网成功后LED3不点亮属于正常情况。''' === 模块组网通信 === 以下操作均直接使用UART串口发送和接收数据,波特率设置为38400。 '''广播模式通信''' 描述:广播方式是由一个设备发送信息至整个Zigbee网络上的所有设备,分别烧录协调器(coordinator)和路由器(router)固件,上电之后,先按一下协调器的KEY2(ZB502)或者摇杆中键(ZB600),再按下路由器的KEY2(ZB502)或者摇杆中键(ZB600),让协调器加入路由器。操作现象如下: 格式:要发送的数据 {|class="wikitable" |示例: 如果任意一个模块需要以广播的方式发送信息“Hello Waveshare”,操作现象如下: 字符串输入框输入以下字符,点击发送: {|class="wikitable" |Hello Waveshare |} 所有路由和协调器的字符串接收框都可以接收以下信息: {|class="wikitable" |Hello Waveshare |} |} '''点对点通信''' 描述:实现网络中任意两个节点之间的通信 格式:P2P 目的地址 要发送的数据 {|class="wikitable" |示例: 如果A模块要向B模块发送数据“Hello World”,操作和现象如下: 通过AT+GETADDR读取A和B模块的短地址 字符串输入框: {|class="wikitable" |AT+GETADDR |} 便能够读取到A模块和B模块的地址: {|class="wikitable" |Module A |ADDR=0x50F5 |- |Module B |ADDR=0x3CB8 |} 在A模块使用P2P指令就可以给B模块发送数据了。如下: {|class="wikitable" |P2P 3CB8 Hello World |} 此时就只有B模块能收到以下数据,其他的节点和路由都无法收到数据。 {|class="wikitable" |Hello World |} |} *【例子】:<br /> [[File:P2P-1.png|400px]]<br /><br /> [[File:P2P-2.png|400px]] '''点对多通信''' 描述:一个节点向指定的多个节点发送数据 格式:O2M 目的地址个数 目的地址1 目的地址2 … 发送的数据 {|class="wikitable" |示例: 如果A模块要向B,C模块发送数据“Hello World”,操作和现象如下: 通过AT+GETADDR读取A,B,C模块的短地址 字符串输入框: {|class="wikitable" |- |AT+GETADDR |} 字符串接收框: {|class="wikitable" |- |Module A |ADDR=0x50F5 |- |Module B |ADDR=0x3CB8 |- |Module C |ADDR=0x143E |} 在A模块使用O2M指令就可以给B、C模块发送数据了。如下: {|class="wikitable" |- |O2M 2 0001 143E Hello World |} 此时就只有B,C模块能收到以下数据,其他的节点和路由都无法收到数据。 {|class="wikitable" |- |Hello World |} |} == 使用上位机 == === 上位机介绍 === ZBSCOMM是微雪电子根据本模块专门开发的一款上位机软件,通过它可以对模块进行设置并且能够读取当前模块的配置信息;如果你不想采用上位机配置模块,同样也可以通过模块内置的AT指令集完成操作。 [[File:Core2530-XCore2530-User-Manual-10.jpg]] === 指令详解 === 表 1: 重启模块 {|class="wikitable" |- |命令 |'''AT+RESTART''' |- |输入参数 |无 |- |返回值 |RESTART OK |- |备注 |当串口返回 RESTART OK 之后,模块重新启动 |} 表 2: 恢复出厂设置 {|class="wikitable" |- |命令 |'''AT+RESET''' |- |返回值 |SETUART OK SETCHN OK SETPANID OK |- |备注 |重启模块之后生效 出厂参数: PANID :0xFFFF(随机分配) CHANNEL:11/2405MHz UART选择:0(选择串口0) 波特率:38400 流控制:0(无流控制) |} 表 3: 串口信息配置 {|class="wikitable" |- |命令 |'''AT+SETUART 串口通道 波特率 流控制(命令参数之间用空格隔开)''' |- |功能介绍 |设置串口号,波特率,流控制, |- |输入参数 |串口通道:这里必须写0,选择串口0进行配置。 波特率:9600-115200 流控制:这里必须写0,关闭流控制 |- |返回值 |成功:SETUART OK 失败:SETUART ERR |- |备注 |出厂参数:UART选择:0(选择串口0) 波特率:38400 流控制:0(无流控制) |} {|class="wikitable" |示例: 如果需要设置串口的波特率,只需在字符串输入框中输入“AT+SETUART 0 38400 0” 点击发送即可,需重启设备才生效,操作和现象如下: 字符串输入框: {|class="wikitable" |- |AT+SETUART 0 38400 0 |} 字符串接收框: {|class="wikitable" |- |SETUART OK |} |} 表 4: 信道设置 {|class="wikitable" |- |命令 |'''AT+SETCHN 信道''' |- |功能介绍 |设置Zigbee的信道。 |- |输入参数 |信道: 取值范围 11-26。 |- |返回值 |成功返回: SETCHN OK 失败返回: SETCHN ERR |- |备注 |所有的模块必须设置为同一的信道才可以进行组网,默认自动分配。 出厂参数: 11/2405MHz。 |} 表 5: 设置PAN ID {|class="wikitable" |- |命令 |'''AT+SETPANID 局域网标志符''' |- |功能介绍 |Zigbee协议使用一个16位的局域网标志符(PANID)来标识一个网络 |- |输入参数 |局域网标志符 :0x0000-0x3FFE |- |返回值 |成功返回:SETPANID OK 失败返回:SETPANID ERR |- |备注 |如果PANID=0xFFFF:设备将建立或加入一个“最优”的网络。 如果PANID≠0xFFFF:设备建立或加入指定PANID网络。 PANID的出现一般是伴随在确定信道以后的。 |} 表 6: 读取所有配置信息 {|class="wikitable" |- |命令 |'''AT+GETCFG''' |- |功能介绍 |读取所有的配置信息 |- |输入参数 |无 |- |返回值 |UART:串口的参数(波特率,流控制)。 PANID:局域网标志符 ADDR:自己的短地址 FADDR:父辈的短地址 CHANNEL:模块的通信信道 |} 表 7: 读取串口配置信息 {|class="wikitable" |- |命令 |'''AT+GETUART''' |- |功能介绍 |读取串口的配置信息 |- |输入参数 |无 |- |返回值 |串口编号:0/1(串口0/串口1) 串口波特率:9600-115200 流控制:0/1(没有流控制/有流控制) |} 表 8: 读取当前通信信道 {|class="wikitable" |- |命令 |'''AT+GETCHN''' |- |功能介绍 |读取模块的通信信道 |- |输入参数 |无 |- |返回值 |返回 CHANNEL的信道值 |} 表 9: 读取自身PAN ID {|class="wikitable" |- |命令 |'''AT+GETPANID''' |- |功能介绍 |读取当前网络的标示符 |- |输入参数 |无 |- |返回值 |成功将返回:PANID=0xxxx; 不成功返回:PANID=0xFFFE |} 表 10: 读取自身短地址 {|class="wikitable" |- |命令 |'''AT+GETADDR''' |- |功能介绍 |读取自身短地址 |- |输入参数 |无 |- |返回值 |返回ADDR=0xXXXX; |- |备注 |短地址长度:16位 用于点对点,点对多的数据传输 |} 表 11: 读取父节点短地址 {|class="wikitable" |- |命令 |'''AT+GETFADDR''' |- |功能介绍 |读取父节点的短地址 |- |输入参数 |无 |- |返回值 |FADDR=0xXXXX; |- |备注 |短地址长度:16位 |} 表 12: 读取自身IEEE地址 {|class="wikitable" |- |命令 |'''AT+GETIEEE''' |- |功能介绍 |读取自身IEEE地址 |- |输入参数 |无 |- |返回值 |IEEE=xx xx xx xx xx xx xx xx |- |备注 |设备的IEEE是一个64位的地址 |} 表 13: 读取父节点IEEE地址 {|class="wikitable" |- |命令 |'''AT+GETFIEEE''' |- |功能介绍 |读取父节点的IEEE地址 |- |输入参数 |无 |- |返回值 |MY_FIEEE=xx xx xx xx xx xx xx xx |- |备注 |父设备的IEEE是一个64位的地址 |} == 示例程序演示 == 【注意】 以下程序须配套底板ZB500/ZB600,另外还需要用CC Debugger下载程序。 === LED_KEY === '''程序说明'''<br /> *按键触发把相应的按键值发送给UART并打印出来。 '''实验操作'''<br /> 【步骤】<br /> #接上KEY JMP和UART0的跳线帽 #供电,下载例程 【现象】<br /> *分别按板上的按键,串口会打印相应的键值 【照片】<br />[[File:LED_KEY-01.jpg|200px]][[File:LED_KEY-2.jpg|200px]][[File:LED_KEY-3.jpg|200px]][[File:LED_KEY-4.jpg|200px]] === Timer(T1) === '''程序说明'''<br /> *使用定时器1计时,定时控制LED1亮灭 '''实验操作'''<br /> 【步骤】<br /> #接上LED1 JMP和UART0的跳线帽 #供电,下载例程 【现象】<br /> *LED1有规律亮灭 === Timer(T3) === '''程序说明'''<br /> *使用定时器3计时,定时控制LED1亮灭 '''实验操作'''<br /> 【步骤】<br /> #接上LED1 JMP和UART0的跳线帽 #供电,下载例程 【现象】<br /> *LED1有规律亮灭 ===DS18B20=== '''程序说明'''<br /> *通过1-Wire口来检测温度传感DS18B20+上的温度 '''实验操作'''<br /> 【步骤】<br /> #接上DS18B20+到1-WIRE接口 <font color="red">(注意:DS18B20+接入的方向不能接反,否则易烧坏)</font> #供电,并下载例程 【现象】<br /> *串口显示出DS18B20+上感应到的温度值 【照片】<br />[[File:DS18B20-1.jpg|200px]][[File:DS18B20-2.jpg|200px]] ===External interrupt=== '''程序说明'''<br /> *通过按键触发外部中断来控制LED1亮灭 '''实验操作'''<br /> 【步骤】<br /> #接LED1 JMP和KEY1 JMP跳线帽 #供电,并下载例程 【现象】<br /> *按键KEY1,LED1会有亮灭变化 ===UART0=== '''程序说明'''<br /> *使用UART0自发自收数据 '''实验操作'''<br /> 【步骤】<br /> #接上UART0 JMP跳线帽 #供电,并下载例程 【现象】<br /> *串口显示程序自发自收的数据 【照片】<br />[[File:UART0-2.jpg|200px]] ===UART0 -printf=== '''程序说明'''<br /> *使用UART0与外部进行数据通信 '''实验操作'''<br /> 【步骤】<br /> #接上UART0 JMP跳线帽 #供电,并下载例程 【现象】<br /> *通过串口助手发送字符给MCU,MCU收到后打印出来。 【照片】<br />[[File:UART0 -printf-2.jpg|200px]] ===SPI1_AT45DB=== '''程序说明'''<br /> *使用SPI接口对外设AT45DBXX芯片进行数据的先写后读,并把写入和读取的状态通过串口打印出来 '''实验操作'''<br /> 【步骤】<br /> #接上UART0 JMP跳线帽 #供电,并下载例程 【现象】<br /> *通过串口助手打印出对AT45DBXX的操作状态 【照片】<br />[[File:SPI_AT45DBXX-1.jpg|200px]] [[File:SPI_AT45DBXX-2.jpg|200px]] ===ADC=== '''程序说明'''<br /> *程序持续地对ADC7的模拟值进行检测,并把检测到的值通过UART0打印出来 '''实验操作'''<br /> 【步骤】<br /> #接上UART0 JMP跳线帽 #供电,并下载例程 【现象】<br /> *通过串口助手打印出ADC7端口的模拟量 【照片】<br />[[File:ADC-1.jpg|200px]] [[File:ADC-2.jpg|200px]] ===AD_Thermometer=== '''程序说明'''<br /> *使用片设的温度传感功能检测温度,并把值通过UART0打印出来 '''实验操作'''<br /> 【步骤】<br /> #接上UART0 JMP跳线帽 #供电,并下载例程 【现象】<br /> *通过串口助手打印出温度值 【照片】<br />[[File:AD_Thermometer-2.jpg|200px]] 【以下实验配套ZB600测试】 ===JOYSTICK=== '''程序说明'''<br /> *通过JOYSTICK按键触发,并把按键值通过UART0打印出来 '''实验操作'''<br /> 【步骤】<br /> #接上UART0 JMP、KEY JMP跳线帽 #供电,并下载例程 【现象】<br /> *拨动JOYSTICK,串口打印相应的键值 【照片】<br />[[File:JOYSTICK-1.jpg|200px]] [[File:JOYSTICK-2.jpg|200px]] ===DHT11=== '''程序说明'''<br /> *通过P0_0引脚作为ADC功能使用,来获取DHT11传感器上传来的温湿度值,并通过UART0打印出来。 '''实验操作'''<br /> 【步骤】<br /> #接上UART0 JMP跳线帽 #接上[[DHT11 Temperature-Humidity Sensor]] #供电,并下载例程 【现象】<br /> *串口打印出获取到的温湿度值 【照片】<br />[[File:DHT11-1.jpg|200px]] [[File:DHT11-2.jpg|200px]] ===LCD_Touchpanel=== '''程序说明'''<br /> *通过IO口来驱动2.2inch LCD,支持显示画面和触摸画图。 '''实验操作'''<br /> 【步骤】<br /> #接上[[2.2inch 320x240 Touch LCD (A)]] #供电,并下载例程 【现象】<br /> *2.2inch LCD显示画面,并可触摸划线 【照片】<br />[[File:LCD_Touchpanel-1.jpg|200px]]
返回至
Core2530-XCore2530 用户手册
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志