CC2530串口收发
CC2530使用手册
DRF1605H的管脚间距是标准的2.54或2.54*n,所以可以直接插在万用板上使用,便于开发(PIN脚与DRF1605完全兼容,下图为DRF1605实拍照片)。
3,同理,将其它的Router模块上电,则它们会自动寻找并加入这个网络,按下TEST按键,组网后的结构如下:
4,Coordinator可直接绑定6个Router,超出以后,其它的Router通过前面的Router继续加入网络,每个Router可接受其它6个Router加入网络,并分配地址:
ee模块的数据传输
DRF1605H与MCU很方便的连接,全面支持51,ARM,X86,MIPS....等内核MCU,只要MCU有串口即可:
Zigbee模块参数
输入电压
标准:DC 3.3V,范围:2.6V-3.6V
温度范围
-40℃~85℃
净重
7.4g
串口速率
38400bps(默认),可设置9600bps, 19200bps, 38400bps, 57600bps, 115200bps
50 F5:发送方的地址,即数据来源地址
点对点数据传输可在网络内任意节点之间进行:
1,即使Coordinator断电,也可在Router之间通过点对点指令传输;
2,Router加入网络后,地址(Short Address)不会发生改变;
3,长度字节一定要等于数据区数据长度,否则数据传输出错(当成透明传输,发送给了Coordinator);
返回:12 34
是
2
飞比”Zigbee论坛CC2530开发板学习教程
“飞比”Zigbee论坛CC2530开发板学习教程(一)--前言“奥特曼Zigbee读书日记”已经写到第六部分了,首先非常感谢广大网友的支持与长期关注,此系列笔记会继续按照开源的方向进行深入的学习及更新。
同时,应广大网友的要求,也由于CC2530替代CC2430的强劲动力,经论坛管理团队讨论,最终决定在最近的一段时间内暂停“奥特曼Zigbee读书日记”的更新,而推出更偏向于应用,且更贴近市场的教程--“飞比”Zigbee论坛CC2530开发板学习教程。
本教程将着眼于TI公司的新一代 2.4G Zigbee IC-CC2530及最新的Zigbee协议-Zstack2007的应用学习。
所采用的硬件平台为CC2530的官方开发板-CC2530DK (SmartRF05EB)。
少一点炒作,多做一点实事--本站致力于营造一个“潜心学习、踏实做事”的氛围,希望广大Zigbee技术的爱好者、从业者积极参与,一起为中国的“无线单片机”技术献出自己的微薄之力。
[注:本文源自--“飞比”Zigbee论坛,为尊重劳动者成果,如需转载请保留此行,并通知作者]在这一章里,首先介绍下本套教程的整体思路及具体会涉及到的例程。
需要声明的一点是,本教程不是单片机的入门教程,需要读者对单片机及C语言有一定的基础,它关注的是Zigbee协议的基本概念及TI公司公开发行的免费Zigbee协议-Zstack 2007的应用。
首先着眼于TI公司提供的学习例程的讲解,这其中不但包括Zstack 2007的例程,同时会介绍TI的一些简化协议,如Basic RF/SimpliciTI等;然后会将“奥特曼Zigbee读书日记”中介绍的开源协议-MSSTATE LRWPAN,移植到CC2530DK中;最后,我们再来一起进入一个具体的应用领域-智能家居,学习一下TI的专用Zigbee遥控器协议RemoTI。
以下为具体采用的平台及相应的例程:(以下例程很多是CC2430及CC2530中共用的,本教程将同时适用)1、TI Basic RF----Light Switch----PER test2、Zstack 2007-----Sample App-----Generic App-----Home Automation-----Serial App-----Transmit App-----Simple App-----OAD/ENP/ESP等,待定3、MSSTATE LRWPAN ---- 平台移植及Ping Pong例程4、RemoTI声明:本教程中采用的源代码均来源于官方网站,并在此基础上进行修改,本站尊重原作者的劳动,将保留所有源文件的版权信息,并将标明本站进行的修改。
(完整版)CC2530使用手册
可直接驱动USB转RS232芯片
Zigbee模块引脚定义及尺寸
Zigbee模块的组网
Zigbee网络通常由三种节点构成:Coordinator:用来创建一个Zigbee网络,并为最初加入网络的节点分配地址,每个Zigbee网络需要且只需要一个Coordinator;Router:也称为Zigbee全功能节点,可以转发数据,起到路由的作用,也可以收发数据,当成一个数据节点,还能保持网络,为后加入的节点分配地址;End Device:终端节点,通常定义为电池供电的低功耗设备,通常只周期性发送数据,不接收数据。
256字节
200 ms
> 256字节
不能传输
CoordinatorRouter
16字节
100 ms
32字节
100 ms
64字节
100 ms
128字节
200 ms
256字节
500 ms
> 256字节
不能传输
测试条件:
1,室温,实验室条件
2,模块间距离2米,信号良好
3,串口波特率38400(最优选波特率)
(2),点对点数据传输方式:
Zigbee网络内的任意节点之间,可通过点对点传输指令,传送数据;
指令格式:0xFD + 数据长度 + 目标地址 + 数据
1,数据透明传输:(数据透明传输是DRF1600系列模块的最重要功能)
(1), 只要传送的第一个字节不是0xFE,0xFD 或 0xFC,则自动进入数据透明传输方式;
1个Router直接代替一条RS232电缆;
(4),支持数据包变长(无需设置),最大不超过256字节/数据包,一般应用建议每个数据包32字节之内。
串口cc2530
UTX0IF : 发送中断标志
都不讲,同学们自己复 习,(*^__^*) 嘻(P145页)
其实就是设置波特率(P146)
U0UCR--USART 0 UART 控制 主要设置
如果不用奇偶校验, 第九位即为D9
只要设置奇偶校验, 就必须9位数据
第二部分
r程o序gram
ll
一、发送数据
• void InitUART(void)
P0_5------RX P0_4------TX
串口初始化三部曲
CC253 0配置 串口的 一般步 骤:步
骤:
1、 配置IO,使用外部设备
功能。此处配置P0_2 和P0_3用作串口UART0
2、 配置相应串口的控制和
状态寄存器。此处配置 UART0的工作寄存器
3、 配置串口工作的波特率
此处配置为波特率为 115200
• IO_Init(); //LED初始化
• InitUART();
• while(1)
•{
• UartSend_String(Txdata,sizeof(“HELLO WEBEE “)); //串口发送数 据
• Delay_ms(500); //延时
• LED1=!LED1; //标志发送状态
•}
•{ • //U0UCR=0X2A;//偶校验,9位数
据传送,一位停止位
• PERCFG = 0x00; //位置1 P0口 • P0SEL = 0x0c; //P0_2,P0_3用作
串口(外部设备功能)
• P2DIR &= ~0XC0; //P0优先作为 UART0
• U0CSR |= 0x80; //设置为UART 方式
URX0IF = 0; // 清中断标志 temp = U0DBUF;//存数据 RXTXflag=1;//控制LED灯用 }
实验7 CC2530串口控制器编程
实验7 CC2530串口控制器编程本实验完成时间:第8周、第9周一、实验目的1、CC2530串口控制器的原理;2、掌握CC2530串口控制器的编程步骤;二、实验任务从PC 机上的串口调试助手(超级终端)输入的字符能够发送给CC2530,CC2530再把所接收到的字符“原路”回传给对方。
直观的效果:当串口调试助手(超级终端)激活时,键盘上输入的字符能够在串口调试助手的窗口那个回显。
三、实验原理1、何谓超级终端和串口调试助手超级终端:一个和uart 串口相关联的窗口应用程序。
它能够从uart 串口上所接收到的字符显示出来,同时当该窗口激活时能够把键盘所键入的字符从串口发送出去。
超级终端能够从串口收发字符成功的前提是串口通信双方所约定的收发格式一致。
它和一般所说的串口调试助手类似,但有区别:超级终端不会以16进制的形式显示所接收的字符编码;串口调试助手不会把键盘输入的字符实时从串口发送出去,需要点击手动发送。
串口调试助手:桌面上有串口聊天助手,如果不能打开,可以如图1在S503的D 盘/试验箱资料光盘/工具软件/串口工具和驱动/串口聊天助手,打开后如图2所示。
图1串口聊天助手位置图2 串口聊天助手界面图打开任意一个即可!设置参数2、实验室GEC-CC2530开发板的uart串口接口(USB转串口,红色圈圈)如图3:图3 单片机开发板的USB转串口该接口和cc2530所连接的电路图如下:由该图不难得知:P0_3作为串口的发送管脚;P0_2作为串口的接收管脚;P0_5、P0_4作为硬件流控用的,一定要注意,我们平时见到的串口的交叉线都只用到了收、发、地三根线,所以在串口设置是都禁止硬件流控!由此可见,GEC-CC2530所占的资源就是P0_3(发送管脚)、P0_2(接收管脚),更进一步结合CC230数据手册的GPIO设备管脚映射表分析:可知:GEC-CC2530串口——> P0_3(发送管脚)、P0_2(接收管脚)——>uart 0 3、cc2530串口uart编程步骤(1)总线初始化,相关SFR如下PERCFG P2DIR PxSEL UxCSR2、数据链路格式化(数据位、停止位、校验位、波特率);UxUCR UxGCR UxBAUD在3、读写串口收发寄存器UxDBUF 、RX_BYTE(UxCSR的第2位) 、TX_BYTE(UxCSR的第1位) RX_BYTE:接收字节状态,0:没有收到字节;1:准备好接收字节TX_BYTE:传送字节状态,0:字节没有被传送;1:字节准备被传送我们读取数据时,RX_BYTE置1,然后读UxDBuf;我们发送数据时,TX_BYTE置1,且将准备传送的字节写入到UxDBUF;四、实验步骤1、领取单片机开发板,编写代码,先编译下载,如图4下载时需要接下载器,下载好之后,断开下载器和方口线,再将方口线直接接在单片机开发板的USB 转串口上如图5,如果电源指示灯不亮,则将RST旁边的拨码开关打到OFF位置。
CC2530收发机制总结-2012.2.7
CC2530收发机制总结目的:修改TI的basic_rf,使其只实现发送和接收数据的功能,去掉原来发送时,对数据的处理,加MAC帧头等。
1.发送过程:basicRfSendPacket函数修改如下://mpduLength = basicRfBuildMpdu(destAddr, pPayload, length);上一句是将数据打包的过程,我们注释掉#ifdef SECURITY_CCMhalRfWriteTxBufSecure(txMpdu, mpduLength, length, BASIC_RF_LEN_AUTH, BASIC_RF_SECURITY_M);txState.frameCounter++; // Increment frame counter field#elsetxMpdu[0]=0x0A;txMpdu[1]=0x12;txMpdu[2]=0x12;txMpdu[3]=0x12;txMpdu[4]=0x12;txMpdu[5]=0x12;txMpdu[6]=0x12;txMpdu[7]=0x12;txMpdu[8]=0x12;halRfWriteTxBuf(txMpdu, 11);而这里写入缓冲区的发送数据长度也要加1,8个字节数据,2字节FCS,一个字节的len 域,原本是halRfWriteTxBuf(txMpdu, mpduLength);#endif// Turn on RX frame done interrupt for ACK receptionhalRfEnableRxInterrupt();// Send frame with CCA. return FAILED if not successfulif(halRfTransmit() != SUCCESS) {status = FAILED;}发送时需要注意的地方:1)要发送的数据的数据长度一定要大于等于5个字节,因为802.15.4中对于发送帧的长度有最小要求,>=5字节。
Zigbee无线单片机CC2530介绍
第三章 ZigBee无线单片机TI 公司的CC2530是真正的系统级SoC芯片,适用于2.4GHz IEEE 802.15.4,ZigBee和RF4CE应用。
CC2530包括了极好性能的一流的RF收发器,工业标准增强型8051 MCU,系统中可编程的闪存,8KB RAM,具有不同的运行模式,使得它尤其适应超低功耗要求的系统,以及许多其它功能强大的特性,结合德州仪器的业界领先的黄金单元ZigBee 协议栈(Z-Stack™),提供了一个强大和完整的ZigBee 解决方案。
CC2530可广泛应用在2.4-GHz IEEE 802.15.4系统, RF4CE遥控控制系统,ZigBee系统,家庭/建筑物自动化,照明系统,工业控制和监视,低功耗无线传感器网络,消费类电子和卫生保健等领域。
3.1 CC2530芯片的特点CC2530是一个真正的用于2.4-GHz IEEE 802.15.4与Zigbee应用的SOC解决方案。
这种解决方案能够提高性能并满足以ZigBee为基础的2.4 GHz ISM波段应用对低成本、低功耗的要求。
它结合了一个高性能2.4 GHz DSSS(直接序列扩频)射频收发器核心和一颗工业级小巧、高效的8051控制器。
CC2530芯片方框图如图3.1所示。
内含模块大致可以分为三类:CPU 和内存相关的模块;外设、时钟和电源管理相关的模块,以及射频率相关的模块。
CC2530在单个芯片上整合了8051兼容微控制器、ZigBee 射频(RF)前端、内存和FLASH存储器等,还包含串行接口(UART)、模/数转换器(ADC)、多个定时器(Timer)、AESl28安全协处理器、看门狗定时器(WatchDog Timer)、32 kHz晶振的休眠模式定时器、上电复位电路(Power 0n Reset)、掉电检测电路(Brown Out Detection)以及21个可编程IO口等外设接口单元。
CC2530芯片采用O.18um CMOS工艺生产,工作时的电流损耗为20 mA;在接收和发射模式下,电流损耗分别低于30 mA或40 mA。
实验5:CC2530 DMA 实验
计算机科学与技术学院实验报告课程名称:无线传感器网络原理与应用实验五 CC2530 DMA 实验一、实验目的透过本实验的学习,使使用者熟悉 CC2530 芯片的 DMA 传输功能相关暂存器的配置及其使用方法。
二、实验内容用CC2530 芯片内 DMA 控制器将一字符串从源位址转移到目标位址。
三、实验环境硬件:鼎轩 WSN 实验箱(汇聚网关、烧录线、平行串口线),PC 机;软件:IAR 软件,串口助手。
四、实验步骤1. DMA 简介直接存取访问(DMA)控制器可以用来减轻 8051CPU 内核传送数据操作的负担,从而实现在高效利用电源的条件下的高性能。
只需要 CPU 极少的干预,DMA 控制器就可以将数据从诸如 ADC 或 RF 收发器的外设单元传送到存储器。
DMA 控制器协调所有的 DMA 传送,确保 DMA 请求和 CPU 存储器访问之间按照优先等级协调、合理地进行。
DMA 控制器含有若干可编程的 DMA 通道,用来实现存储器-存储器的数据传送。
DMA 控制器控制整个 XDATA 存储空间的数据传送。
由于大多数 SFR 寄存器映射到 DMA 存储器空间,这些灵活的 DMA 通道的操作能够以创新的方式减轻 CPU 的负担,例如,从存储器传送数据到USART,或定期在ADC 和存储器之间传送数据样本,等等。
使用 DMA 还可以保持 CPU 在低功耗模式下与外设单元之间传送数据,不需要唤醒,这就降低了整个系统的功耗。
DMA 控制器的主要功能如下:(1) 5 个独立的 DMA 通道;(2) 3 个可以配置的 DMA 通道优先级;(3) 32 个可以配置的传送触发事件;(4) 源地址和目标地址的独立控制;(5) 单独传送、数据块传送和重复传送模式;(6) 支持传输数据的长域域,设置可变传输长度;(7) 既可以工作在字模式,又可以工作在字节模式。
2.DMA 参数配置DMA 控制器的配置需要由使用者软件来完成。
WSN实验报告
WSN实验报告姓名:谢莉(139074388)李福慧(139074381)专业:物联网工程131班指导老师:卫琳娜学院:计算机学院实验二 4.1 GPIO输入输出实验一.实验内容主要包含了4个实验:控制LED 灯闪烁,按键控制LED 灯开关,按键控制LED 灯闪烁,OLED 显示。
GPIO 输出控制对象为CC2530 模块上的红色和绿色LED,输出置位为0 时LED 灯点亮,置位为1 时LED 灯熄灭。
通过不同代码的运行和控制,观察LED 灯的闪烁情况。
底板上的显示屏通过运行代码,显示不同的信息。
二.实验目的1.了解CC2530 的GPIO 结构和配置原理2.学习配置按键的GPIO 口为输入模式,并采集有效按键3.如何通过程序控制由按键触发控制LED 灯4如何通过程序控制由按键触发控制LED 灯闪烁5.通过CC2530 的GPIO 模拟IIC 总线驱动OLED 显示三.实验步骤1.打开文件2.选择debug3.点击project中的rebuild all ,然后点击debug,进行编译工程并下载到目标板4.运行程序,观察结果四.实验中遇到的问题及解决方法节点模块不一样,所以左右的灯控制也会不一样。
五.实验总结通过实验一,二,三的学习大概熟悉了实验的步骤,所以在做实验的时候也比较顺利,没有遇到什么问题。
这个实验是最基础的,主要观察LED灯的变化。
实验三定时器控制实验一.实验内容实验包含使用定时器T1和T2,还有定时器T4中断。
定时器1 来改变小灯的状态,T1 每溢出两次,两个小灯闪烁一次,并且在停止闪烁后成闪烁前相反的状态。
开启定时器2的中断,计数比较溢出后产生中断来改变小灯的状态,T2 每溢出一次,红色小灯状态改变一次(由亮变暗或由暗变亮)。
用定时器 4 来改变小灯的状态,T4 每2000 次中断小灯闪烁一轮,闪烁的时间长度为1000 次中断所耗时间。
二. 实验目的1.了解CC2530 的定时器T1,T2,T4的配置和使用2.如何通过程序控制CC2530 的T1 驱动LED 灯定时点亮3. 学习定时器T4 的中断模式使用三.实验步骤1.打开文件2.选择debug3.点击project中的rebuild all ,然后点击debug,进行编译工程并下载到目标板4.运行程序,观察结果四.实验中遇到的问题及解决方法因为我们实验使用的节点模块和指导书中的模块不一样,所以现象也不同,主要区别在于闪烁的左右灯不一样,但是不影响实验结果。
11、CC2530串口发送指令控制LED灯
目录
串口发送指令控制 LED 灯 ................................................................................................. 2 1、适用平台 佳杰科技 Q2530SB 硬件平台 ................................................................. 2 2、实验设备 ............................................................................................................. 2 3、实验目的 ............................................................................................................. 3 4、实验相关寄存器 ................................................................................................... 3 5、程序效果 ............................................................................................................. 4 6、程序代码 ............................................................................................................. 4
8-CC2530之串口通信
USART0 的使用方式(发送)
选择32MHz晶振作为时钟源(方便)
物联网技术应用专业教学资源建设
等待晶振稳定
时钟速度定为32MHz
选择外设功能(PERCFG、P0SEL)
选择UART方式(U0CSR) 波特率的设定(U0GCR、U0BAUD) 清除发送完成标志位(IRCON2)
6. 31* :关LED 3,并打印:LED3 已关闭!
谢谢各位
cc2530cc2530之串口的使用之串口的使用cc2530cc2530之串口通信概述之串口通信概述cc2530cc2530之串口通信概述之串口通信概述cc2530cc2530有两个有两个uartuart外设分别是外设分别是uart0uart0和和uart1uart1这两个接口同时包括这两个接口同时包括spispi功能功能uartuart模式提供异步串行接口模式提供异步串行接口在在uartuart模式中接口使用模式中接口使用线或者含有引脚线或者含有引脚rxdrxdtxdtxd可选可选rtsrts和和ctscts一般情况下一般情况下uartuart模式使用模式使用线方式线方式当当uxcsrmodeuxcsrmode设置为设置为时就选择了时就选择了uartuart物联网技术应用专业教学资源建设cc2530cc2530之串口通信概述之串口通信概述cc2530cc2530之串口通信概述之串口通信概述11uart模式提供异步串行接口228位或者9位负载数据33提供全双工传送44uart操作由usart控制和状态寄存器uxcsr以及uart控制寄存器uxucr来控制xx为为00或者或者1物联网技术应用专业教学资源建设串口发送数据串口发送数据串口发送数据串口发送数据1usart收发数据缓冲器寄存器uxbuf写入数据22该字节发送到输出引脚txdx33当字节传送开始时uxcsractive位变为高电平而当字节传送结束时为低44当传送结束时uxcsrtxbyte位设置为1物联网技术应用专业教学资源建设波特率的产生波特率的产生波特率的产生波特率的产生11当运行在uart模式时内部的波特率发生器设置uart22由寄存器uxbaudbaudm7
zigbee_cc2530_解决串口显示头几个乱码
关于Zigbee_cc2530解决串口显示头几个乱码
解决思路:
本来DS18B20温度采集回来,是通过simpleCollector.c中zb_ReceiveDataIndication函数中的debug_str( (uint8 *)buf );函数实现的。
我们要跳过这个函数,用HalUARTWrite()这个函数实现串口功能。
解决方法:
(1)串口初始化
1.在sapi.c中加入#include "MT_UART.h"头文件,这里注意一定要可以预编译。
2.如下图所示,在sapi.c的SAPI_Init( byte task_id )函数中加入这两句话MT_UartInit();//串口初始化代码和MT_UartRegisterTaskID(task_id);//登记任务号
上面这样,串口就可以使用了。
(2)在simpleCollector.c中添加头文件#include "MT_UART.h"
(3)在simpleCollector.c中的zb_ReceiveDataIndication()函数中添加HalUARTWrite(0, buf, (byte)osal_strlen( (void*)buf ));
HalUARTWrite(0,"\n",1);
下载到两个节点中,可以看到你成功了。
(如下图)
//原创:褚建平,唐彬。
希望你转载时声明。
Zigbee实验5 CC2530串口通信实验
#include <iocc2530.h>
#define LED0 P1_0
#define LED1 P1_1
unsigned char Flag_RX,temp;
void led_init(void)
{
P1SEL &= ~0x03;
//P1.0 P1.1为普通 I/O 口
P1DIR |= 0x03;
D7 为 SPI 时钟极性:0 为负时钟极性,1 为正时钟极性; D6 为 SPI 时钟相位: D5 为传送为顺序:0 为最低有效位先传送,1 为最高有效位先传送。 D4~D0 为波特率设置(详见下表):
串口通信流程如下: 图 1.5.1 串口通信实验流程图
1.5.5 实验步骤
1)按照1.1.5所学步骤创建工程,编辑代码:
D7 位为当前 32K 时间振荡器频率。0 为 32KRC 震荡,1 为 32K 晶振。 D6 位为当前系统时钟选择。0 为 32M 晶振,1 为 16M RC 震荡。 D5~D3 为当前定时器输出标记。000 为 32M ,001 为 16M ,010 为 8M , 011 为 4M ,100 为 2M ,101 为 1M ,110 为 500K ,111 为 250K 。 D2~D0 为当前系统主时钟。000 为 32M ,001 为 16M ,010 为 8M ,011 为 4M ,100 为 2M ,101 为 1M ,110 为 500K ,111 为 250K 。 U0CSR:USART0 控制与状态。
编程实现 CC2530 和 PC 之间的双向串口通信。
1.5.4 实验原理
本次实验所学习到的寄存器: CLKCONCMD:时钟频率控制寄存器。
D7 位为 32K 时间振荡器选择,0 为 32KRC 震荡,1 为 32K 晶振。 D6 位为系统时钟选择。0 为 32M 晶振,1 为 16M RC 震荡。当 D7 位为 0 时 D6 必须为 1。 D5~D3 为定时器输出标记。000 为 32M ,001 为 16M ,010 为 8M ,011 为 4M ,100 为 2M ,101 为 1M ,110 为 500K ,111 为 250K 。默认为 001。 需要注意的是:当 D6 为 1 时,定时器频率最高可采用频率为 16M 。 D2~D0:系统主时钟选择:000 为 32M ,001 为 16M ,010 为 8M ,011 为 4M ,100 为 2M ,101 为 1M ,110 为 500K ,111 为 250K 。当 D6 为 1 时,系统主时钟最高可采用频率为 16M 。 CLKCONSTA:时间频率状态寄存器。
CC2530介绍教程
➢ MAC定时器:专为MAC或其他协议而设的定时器,可以跟踪已过周期,同 时可以记录收发某一的帧精确时间和传输结束时间,以便产生不同的选通命 令到无线模块
➢ ADC:支持7到12位的分辨率,带宽范围为7-30kHz,在DC与音频转换时,能 够使用8个输入通道。
CC2530 外设
• 电源管理 • RESET • I/O • DMA • T1(16位) • T2(MAC) • T3/T4
• Sleep Timer • ADC • Random • AES • WDT • UART • Voltage Regulators
CC2530芯片内部结构
CC2530需要极少的外部连接元件,同时有很 多典型电路,其模块大致可以分为三类:
内核
• –优良的性能和具有代码预取功能的低功 • 耗 8051 微控制器内核 • –32-、64-或 128-KB 的系统内可编程闪存 • –8-KB RAM,具备在各种供电方式下的数 • 据保持能力 • –支持硬件调试
低功耗
• –主动模式 RX(CPU 空闲):24 mA • –主动模式 TX 在 1dBm(CPU 空闲):29 • mA • –供电模式 1(4 µs 唤醒):0.2 mA • –供电模式 2(睡眠定时器运行):1 µA • –供电模式 3(外部中断):0.4 µA • –宽电源电压范围(2 V–3.6 V)
引脚名称 AVDD1 AVDD2 AVDD3 AVDD4 AVDD5 AVDD6 DCOUPL DVDD1 DVDD2 GND GND P2_3 P2_4 RBIAS RESET_N RF_N
RF_P
XOSC_Q1 XOSC_Q2 P0,P1,P2
CC2530串口收发
//CC2530基础程序——串口收发程序2014年10月31日杨言安//功能说明:CC2530向PC发送字符串"what is your name?",PC向CC2530发送名字,之后//CC2530向PC发送字符串"hello,name"#include "exboard.h"//函数声明void delay(uint);void Init_Led(void);void InitUART0(void);void UART_Send_String(char *data,int len);char str1[20]="what is your name?";char str2[7]="hello ";char rxdata[50];//接收数组uchar RXTXFlag=1;//发送接收标志位uchar temp;//存储接收数据的全局变量uchar datanumber=0;//接收数据的数量/***************************************************************** *************//延时函数***************************************************************** *************/void delay(uint n){uint i;for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);}/*************************************************** ***************************//端口初始化***************************************************************** *************/void Init_Led(void){P1SEL&=~0x03;//P1_0、P1_1为通用I/O口P1DIR|=0x03;//P1_0、P1_1为输出}/****************************************************************** ************//串口初始化***************************************************************** *************/void InitUART0(void){CLKCONCMD&=~0X40;//设置系统时钟源为32MHz晶振while(CLKCONSTA&0x40);//时钟频率状态寄存器,等待晶振稳定CLKCONCMD&=~0x47;//设置系统主时钟频率为32MHzPERCFG=0x00;//位置1P0口P0SEL|=0x0C;//P0_2、P0_3用作串口P2DIR&=~0xC0;//P0优先作为UART方式U0CSR|=0x80;//UART模式U0GCR|=9;//U0BAUD|=59;//波特率设置为19200UTX0IF=0;//UART0 TX中断标志初始位置位0U0CSR|=0X40;//允许接受IEN0|=0x84;//开总中断,开UART0接受中断}/****************************************************************** ************//串口发送函数***************************************************************** *************/void UART_Send_String(char *data,int len){uchar i;for(i=0;i<len;i++){U0DBUF=*data++;while(UTX0IF==0);//检测字符是否发送完毕UTX0IF=0;//清楚xx标志}}/***************************************************************** *************//主函数***************************************************************** *************/void main(void){Init_Led();InitUART0();GLED=1;//关闭LEDRLED=1;//关闭LEDUART_Send_String(str1,20);while(1){if(RXTXFlag==1)//接收状态{RLED=0;if(temp!=0){if((temp!='#')&&(datanumber<50)){rxdata[datanumber++]=temp;}el se {RXTXFlag=3;//接收完后进入发送状态RLED=1;//关闭指示灯}temp=0;//接收完一个字节后清零}}if(RXTXFlag==3)//发送状态{GLED=0;//开起指示灯U0CSR&=~0x40;//不能接收串口数据UART_Send_String(str2,7);//向PC发送"HELLO"UART_Send_String(rxdata,datanumber);//PC向CC2530发送的名字U0CSR|=0X40;//允许接受RXTXFlag=1;//恢复到接收状态datanumber=0;//指针归零GLED=1;//关闭LEDdelay(5000);}}}/********************************************************* *********************串口接收一个字符:一旦有数据从串口传至CC2530,则进入中断,将接收到的数据赋值给变量***************************************************************** *************/#pragma vector=URX0_VECTOR__interrupt void UART0_ISR(void){URX0IF=0;temp=U0DBUF;}。
CC25530串口通信
3、任务实施 (1)电路分析 要使用CC2530单片机和PC进行串行通信,需要了解常用的串行通信接口。常用的串行
通信接口标准有RS232C、RS422A和RS485等。由于CC2530单片机的输入输出电平是TTL电 平,PC机配置的串行通信接口配置是RS232标准接口,两者的电气规范不一致,要完成两者 之间的通信,必须经过MAX232芯片进行电平转换。
并行 通信
• 数据的各位同时发送或接收 • 传送速度快效率高,传送成本高 • 短距离数据通信,计算机内部的数据传送方式
串行 通信
• 指数据一位接一位顺序发送或接收 • 传输成本低,传送数据速度慢 • 较长距离的数据传送
• 所有设备使用同一个时钟,以数据块为单位传送数据
工作方式 • 每个数据块包括同步字符、数据块和校验字符
通
信
缺点
• 数据传输速率较低
每一帧数据由起始位(低电平)、数据位、奇偶 校验位(可选)、停止位(高电平)组成。
在一帧数据的停止位之后, 线路处于空闲状态,可以是 很多位,线路上对应的逻辑 值是1,表示一帧数据结束。
发送端通过发送起始位开始一帧 数据的传送。起始位使数据线处 于逻辑0,表示一帧数据的开始。
① 通电后LED1熄灭。 ② 设置USART 0使用位置。 ③ 设置UART工作方式和波特率。 ④ LED1点亮。 ⑤ 发送字符串“Hello ! I am CC2530。\n”。 ⑥ LED1熄灭。 ⑦ 延时一段时间,延时时间可以设置为3秒。 ⑧ 返回步骤④循环执行。
2、任务分析
CC2530串口通信
CC2530串⼝通信任何USART双向通信⾄少需要两个脚:接收数据输⼊(RX)和发送数据输出(TX)。
RX:接收数据串⾏输⼊。
通过采样技术来区别数据和噪⾳,从⽽恢复数据。
TX :发送数据输出。
当发送器被禁⽌时,输出引脚恢复到它的I/O端⼝配置。
当发送器被激活,并且不发送数据时,TX引脚处于⾼电平。
在单线和智能卡模式⾥,此I/O ⼝被同时⽤于数据的发送和接收。
并⾏通信与串⾏通信微控制器与外设之间的数据通信,根据连线结构和传送⽅式的不同,可以分为两种:并⾏通信和串⾏通信。
并⾏通信:指数据的各位同时发送或接收,每个数据位使⽤单独的⼀条导线。
传输速度快、效率⾼,但需要的数据线较多,成本⾼。
串⾏通信:指数据⼀位接⼀位地顺序发送或接收。
需要的数据线少,成本低,但传输速度慢,效率低。
CC2530的串⼝通信模块CC2530有两个串⾏通信接⼝USART0和USART1,它们能够分别运⾏于异步UART模式或者同步SPI模式。
两个USART接⼝具有相同的功能,通过PERCFG寄存器可以设置两个USART接⼝对应外部I/O引脚的映射关系:位置1:RX0 --- P0_2 TX0 --- P0_3 RX1 --- P0_5 TX1 --- P0_4位置2:RX0 --- P1_4 TX0 --- P1_5 RX1 --- P1_7 TX1 --- P1_6PERCFG寄存器:UART⼝与计算机的COM⼝连接认识两种电平:TTL电平和RS232电平。
TTL电平:逻辑0----⼩于0.8V 逻辑1----⼤于2.4V。
RS232电平:逻辑0----5~15V 逻辑1---- -5~-15V。
计算机的串⾏通信接⼝是RS-232的标准接⼝,⽽CC2530单⽚机的UART接⼝则是TTL电平,两者的电⽓规范不⼀致,所以要完成两者之间的数据通信,就需要借助接⼝芯⽚在两者之间进⾏电平转换,常⽤的有MAX232芯⽚。
TIP:DB9接⼝中,公头和母头的排列顺序是不同的。
CC2530UART串口实验1(UART0串口发送字符串)
/*****************************************
//by 虚幻代码
//说明:从CC2530 上通过串口不断发送字符串到PC 端,实验使用UART0,波特率为19200
*****************************************/
{
intj;
for(j=0;j<len;j++)
{
U0DBUF=*data++;
while(UTX0IF==0);
UTX0IF=0;
}
}
chartxdata[25]="start transmit:\n";
//主函数
voidmain(void)
{
//初始化LED
P1DIR=0X03;
rled=1;
gled=1;
//初始化串口
CLKCONCMD&=0XBF;//系统时钟为32MHZ
while(CLKCONSTA&0X40);//等待时钟稳定
CLKCONCMD&=0XF8;//主时钟频率为32MHZ
PERCFG&=0XFE;//设USART0的ALT 1
P0SEL|=0X3C;//P0口2、3、4、5做外设
P2DIR&=0X3F;//P0外设优先级USART0最高
U0CSR|=0X80;//设USART0 工作方式为 UART
U0GCR|=9;
U0BAUD|=59;//设波特率
UTX0IF=0;//UART0 TX中断标志位清0
//传送字符串
uarttx_send_string(txdata,25);
CC2530定时器1的原理与编程
CH4IF CH3IF CH2IF CH1IF CH0IF
复位 00 0
0 0 0 0 0
R/W R0 R/W0
R/W0 R/W0 R/W0 R/W0 R/W0
描述
保留
定时器1计数器溢出中断标志。当计数器在自由运行 或模计数器模式下达到最终计数值时设置,当在正/ 倒计数模式下达到零时倒计数。写1没影响。
1.定时器1初始化
void Initial(void)
{ EA=1; T1IE=1; //用T1来做实验 128分频;自动运行模式(0x0000->0xffff);
T1CTL = 0x0d;
}
2.时钟初始化
void InitClock(void) {
CLKCONCMD &= ~(1<<6); /*选择32MHz晶振*/
LED1 = 1;
}
4.头文件、宏定义
#include <ioCC2530.h> #define uint unsigned int #define uchar unsigned char #define LED1 P1_0 uint counter=0;//统计溢出次数
定时器1
5.主函数、中断服务程序
一、定时器1 IRCON中断标志寄存器如下:
无中断未决:无中断信号给CPU 中断未决:有中断信号给CPU
位 名称 7 STIF
复位 0
R/W R/W
描述 睡眠定时器中断标志 0:无中断未决
1:中断未决
6 --
0
R/W 必须写为0,写入1总是使能中断源。
5 P0IF
0
R/W 端口0中断标志 0:无中断未决 1:中断未决