摘要:
一、承上启下 这一篇,我们来讨论一下CC2430的睡眠功能及唤醒方法。在实际运用中的CC2430节点一般是靠电池来供电,因此对其功耗的控制显得至关重要。 下面是摘自CC2430中文手册对CC2430的4种功耗模式的介绍: 查看原图(大图) 从上表中可看出,CC2430共有4种电源模式:PM0(完全清醒),PM1(有点瞌睡)、PM2(半醒半睡)、PM3(睡的很死)。越靠后,被关闭的功能越多,功耗也越来越低。它们之间的转化关系如下: 把 PM1、PM2 唤醒到PM0,有三种方式:复位、外部中断、睡眠定时器中断;但把 PM3 唤醒到 PM0,只有两种方式:复位、外部中断(这是因为在 P... 阅读全文
摘要:
一、承上启下 再好的操作系统,不管是现在的Win7还是以后Win8、Win9,总会出现BlueScreen的时候,更何况是小小的单片机呢~ 电气噪声、电源故障、静电放电等不可预知的原因,都可能造成嵌入式系统的运行出现异常。 而看门狗(Watch Dog),准确的说应该是看门狗定时器,则正是专门用来监测单片机程序运行状态的电路结构。其基本原理是:启动看门狗定时器后,它就会从0开始计数,若程序在规定的时间间隔内没有及时对其清零,看门狗定时器就会复位系统(相当于重启电脑),如下图所示(word画的,画得比较eggache~): 查看原图(大图) 下面我们就来介绍简单的看门狗应用方法:怎么放狗... 阅读全文
摘要:
一、承上启下 上一节,我们讲到了ADC的使用,并对片内温度传感器进行了采样。在实际项目中,传感器的数量往往很多,大量的转换数据有待处理。对这些数据的移动将会给CPU带来很大的负担。为了解放CPU,让它有精力去做其他的事儿,DMA(Direct Memory Access)就可以派上用场啦~ 下面的介绍摘自《Zigbee技术实践教程》: DMA是direct memory access的缩写,即“直接内存存取”。这是一种高速的数据传输模式,ADC/UART/RF收发器等外设单元和存储器之间可以直接在“DMA控制器” 的控制下交换数据而几乎不需要CPU的干预。除了在数据传输开始和结束时做一点... 阅读全文
摘要:
一、承上启下 在无线传感器网络中,很重要的一项就是将传感器的模拟值转换成数字量,以便于传输和处理。而ADC(Analog-to-Digital Converter)正是用来完成这种转换的。 上一节,我们介绍了CC2430与PC之间的串口通信。CC2430内部已嵌入一个温度传感器,本节将在上一节的基础上,实现一个简单的关于片内温度监测的小实验:利用ADC将片内温度传感器的电压值转换成数字量,利用公式计算出温度值,然后通过串口将温度值传送到PC上并显示出来。 二、ADC单次采样 (1)实验简介 利用ADC转换CC2430片内温度传感器的温度值,通过串口将温度值发送到PC并显示出来。 ... 阅读全文
摘要:
一、承上启下 在无线传感网络中,CC2430需要将采集到的数据发送给上位机(即PC)处理,同时上位机需要向CC2430发送控制信息。这一切都离不开两者之间的信息传递。这一节,我们就来学习如何实现PC机与CC2430之间的串口通信。 CC2430包括2个串行通信接口 USART0 与 USART1,每个串口包括两个模式:UART(异步)模式、SPI(同步)模式,本节仅涉及UART模式)。 二、串口通信实验 (1)实验简介 实现开发板与PC机的通信:PC向CC2430发送某一字符串,CC2430收到后返回此此字符串给PC。 (2)实验准备 开始编写代码之前,需要搭建好硬件设施:正确连... 阅读全文
摘要:
一、承上启下 上一篇,我们一起学习了简单的外部中断的实现。有了对中断的实践经验后,我们这一节来讨论一下定时器中断。CC2430共有4个定时器,可分3类:定时器1、定时器2、定时器3/4(3与4的用法一致)。 由于笔者也是刚刚接触CC2430,涉及定时器的项目实战经验基本为零,所以不打算(也无能为力)深入剖析定时器。本篇仅就定时器1的计数溢出中断用法做简单的实验性探索,对于其输入捕获/输出比较/PWM功能则略去不提。定时器2、定时器3/4也只做简单的功能介绍。等笔者的功力达到一定火候之后,再来站在Zigbee实战经验的高度来完善本篇随笔。 二、定时器1 定时器1是一个16位定时器,具有定... 阅读全文
摘要:
一、承上启下 上一讲,我们通过一个最简单的LED闪烁小实验,熟悉了IAR开发CC2430程序的基本过程。刀好歹磨过了(虽然我这块磨刀石不咋地),现在就开始屠虫了:)。接下来,我们一起来学习几个CC2430的基础实验。每个小实验,分“实验简介”、“程序流程图”,“实验源码及剖析”三个部分阐述。 本篇讲解外部中断。 二、外部中断 (1)实验简介 中断是单片机实时地处理内部或外部事件的一种内部机制。当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。 中断分外部中断和内部中断,CC243... 阅读全文
摘要:
一、承上启下 在上一篇文章《Zigbee之旅(一):开天辟地》中,我们简要的介绍了Zigbee,以及其开发环境的搭建。OK,现在工具都齐全了,一个问题随之产生:如何利用这些软、硬件来编写一个能够跑起来的程序呢? 本篇文章基本是来回答以上问题的:以“LED灯闪烁”这个小实验作为例子,介绍如何配置IAR以适合开发基于CC2430的程序,如何运用 IAR 编写并在线调试程序。 二、IAR的配置 IAR是一个强大的嵌入式开发平台,支持非常多种类的芯片。IAR中的每一个Project,都可以拥有自己的配置,具体包括Device类型、堆/栈、Linker、Debugger等。 (1)新建 Wor... 阅读全文
摘要:
一、前言 首先自我介绍一下~我是来自湖北某高校的一名大三学生。因专业及个人爱好,最近对Zigbee比较感兴趣。于是我和几个班里的同学商量了下,凑了些钱购置了一套基于CC2430芯片的Zigbee开发板,打算抽时间摸索一下。于是我想到在博客园发表相关博文,介绍我们自学Zigbee的点滴历程。 本系列博文适合对C-51系列单片机有一定的理论或实践经验,并对Zigbee技术感兴趣的朋友。博文的部分内容取材于互联网以及开发板附带的学习资料,其余内容均属原创,欢迎各位朋友转载,转载的同时也请注明作者及出处,谢谢! 二、Zigbee简介 物联网→传感器→无线传感器网络→Zigbee 可能大多数人... 阅读全文