CC2430_CC2530 片内AD转换详解
ZIGBEE工作介绍及CC2530芯片介绍解读
– UART – SPI (可主可从)
• • • •
波特率从2400到230400可设 可以产生中断 可以触发DMA,用于传输批量数据 端口的位置可选
CC2530RF板PCB图
芯片最小系统接法
无线设备
• CC2530具备一个IEEFra bibliotek802.15.4兼容无线 收发器,其中的RF内核控制无线模块,另 外它还提供了一个连接外部设备的端口, 从而可以发出命令和读取状态,操纵各执 行电路的事件顺序。同时无线设备还包括 数据包过虑模块和地址识别模块。
CC2530芯片介绍
RF/LAYOUT
• • • • • • • • –适应 2.4-GHz IEEE 802.15.4 的 RF 收发 器 –极高的接收灵敏度和抗干扰性能 –可编程的输出功率高达 4.5 dBm –只需极少的外接元件 –只需一个晶振,即可满足网状网络系统 需要 –6-mm × 6-mm 的 QFN40 封装
CC2530需要极少的外部连接元件,同时有很 多典型电路,其模块大致可以分为三类: 1、 CPU和内存相关模块 2、外设,时钟和电源管理相关模块 3、无线信号收发相关模块
CPU和内存
CC2530使用的8051CPU是一个单周期的兼容内核,它 有三种不同的访问总线。其中包括中断控制器,内存仲裁器, 8KB SRAM,32/64/128/256KB闪存块。 •中断控制器:其为18 个中断源提供服务,它们中的每个中断都被赋予4 个
XTAL2 是一个可选的32.768-kHz 晶振,有两个负载电容(C321 和C331) 用于32.768-kHz晶振。32.768-kHz 晶振用于要求非常低的睡眠电流消耗和精 确唤醒时间的应用。32.768-kHz晶振看到的负载电容由下式给定:
ZigBee_ADC
CC2530 数据采集系统(1)CC2530内部具有一个12位的ADC,其输入是一个多路复用器,根据ADC控制寄存器的设置可以选择输入端为AIN0~AIN7,GND,温度传感器或VDD/3,且AIN0~AIN7还可以组合为差分输入模式。
基准电压源也可以设置为内部基准,AIN7上的外部基准,AVDD5引脚电压或AIN6-AIN7上的差分电压。
ADC的工作模式有两种,一种是单个转换,一种是序列转换,单个转换可以通过置位转换寄存器开始一次转换,而序列转换则可以通过外不触发,全速,定时器以及手动开始一个转换序列。
工作于单个转换模式且转换完成时会产生一个中断,但是如果是工作在序列模式时不会产生CPU中断,而是由DMA完成数据到存储器的传输并在序列转换结束时产生DMA 中断。
ADC在不同的采样率下具有不同的分辨率,如512采样率具有12位分辨率,而64采样率具有7位分辨率,这是因为CC2530中的ADC是一个delta-sigma类型的ADC,因此采样率越高其分辨率也越高,但是功耗相应地会增加。
如果要测量片上温度传感器的数值,除了ADC的通道选择为温度传感器外,还需要设置T R0测试寄存器使其连接温度传感器到ADC且设置ATEST寄存器使能温度传感器(默认关闭,节省功模 ?br /> ADC以系统时钟作为转换时钟,当然ADC内部还有分频的过程但不受用户控制。
以上信息都是从CC2530的数据手册查到,有了这些信息就可以开始动手。
数据采集后将通过串口传送到上位机并由上位机显示出实时曲线,因此软件分为下位机和上位机。
下位机涉及ADC和串口的操作,上位机需要显示曲线、保存数据,并可以对下位机进行如采样率、工作模式等进行配置。
因此采用C#作为开发环境。
本篇文章将随着实验的推进慢慢完善。
下位机软件流程:1.硬件初始化(核心晶振选择,ADC配置,串口配置,FLASH参数读取-用于保存系统参数)2.报告上位机初始化完毕3.接收到数据采集命令进入数据采集模式,如果接收到配置命令则进入系统参数配置模式。
CC2530的AD发现
CC2530有8个ADC通道,系统框图如下:使用ADC有两种情况:第一种是连续转换,此时需要配置ADCCON1和ADCCON2寄存器;第二种是单次转换,此时只需要配置寄存器ADCCON3即可。
请初学者搞清楚哈,单次转换只需要配置寄存器ADCCON3就可以。
我今天实验的情况:使用ADC测量单节干电池的电压。
选择的参考电压基准为:A VDD=3.3V,模拟通道选择通道0.则初始化函数为:static uint16 readV(uint8 channal,uint8 resolution){uint16 value ;APCFG |= 1 << channal ; //注意这里是设置ADC输入通道!!ADCIF = 0 ;ADCCON3 = (HAL_ADC_REF_A VDD | resolution | channal) ;while ( !ADCIF ) ;value = ADCL ;value |= ((uint16) ADCH) << 8 ;//这里注意一下if(channal == HAL_ADC_DEC_064)//7位分辨率value >>= 9 ;else if(channal == HAL_ADC_DEC_128) //9位分辨率value >>= 7 ;else if(channal == HAL_ADC_DEC_256) //10位分辨率value >>= 6 ;else if(channal == HAL_ADC_DEC_512) //12位分辨率value >>= 4;return value;}使用如下方式调用该函数:1temp = readV(HAL_ADC_CHN_AIN0,HAL_ADC_DEC_256) ;//10位分辨率2_ltoa(temp,vdataformat.Test,16) ;3temp = (temp + (temp << 5) ) >> 6 ;4Data[0] = (uint8)temp/10 + '0' ;5Data[1] = '.' ;6Data[2] = (uint8)temp%10 + '0' ;第1行,选择模拟通道0,10位分辨率;第2行,将读取到的AD转换值以十六进制的形式显示出来。
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。
cc2430与cc2530区别
cc2430与cc2530区别CC2430与CC2530区别/doc/3eca50130b4e767f5acfce88.html 2530在内存、尺⼨、RF性能等⽅⾯⽐CC2430有了重⼤改进,如下表:类别CC2430 CC2530特征MCU 兼容8051 兼容8051Flash 128KB 256KBRAM 8K(<4K PM2/3) 8KB all PMs 时钟误差检查否是定时器1通道 3 5MAC定时器位数16-bit 20-bit 溢出16-bit 24-bit 溢出主频32MHz 32MHz封装7x7 , 48 pin 6x6, 40 pin⼯作环境- 40 ~ +85℃- 40 ~ +125℃⽆线性能灵敏度(dBm) - 92 - 97 最⼤发送功率(dBm) 0 + 4.592 101.5输出功率最⼤误差11% 2% 偏差-5MHz 30 49偏差+5MHz 41 49偏差-10MHz 53 57偏差+10MHz 55 57低功耗⼯作电压 2.0 ~ 3.6V 2.0 ~ 3.6V接收电流27 mA 24 mA 发送电流(0dBm) 27 mA 29 mA发送电流(+4.5dBm) N A 34mACPU有效电流(32MHz) 10.5mA 6.5mA PM1电流190 uA 200 uAPM2电流0.5 uA 1 uAPM3电流0.3uA 0.4uAPM1->有效 4 us 4 usPM2/3->有效0.1 ms 0.1 ms晶振启动时间0.5ms 0.3ms2.⼯具SmartRF05平台完全⽀持CC2530,同时SmartRF04平台完全⽀持CC2430。
SmartRF04EB 板发货时配有CC2430,也⽀持CC2530,但固件必须更新和不是所有的功能都有⽤。
SmartRF04EB 板没有软件栈和例程。
⽼版SmartRF05EB 板固件需要升级才能识别CC2530。
CC2430的AD使用总结
【原创】CC2430单片机AD转换使用方法总结CC2430单片机标称AD转换精度为14位,在单片机中算是比较高的了,CC2430最广泛的用途是作为传感器来使用的,而传感器测量的物理量的原理多半是将物理量转换成电流、电压等模拟信号,再通过AD 转换进入单片机处理。
所有用好CC2430的AD是使用好CC2430的一项基本技能。
一、CC2430的ad的几个重要参数1、量化精度14位2、转换方式为代儿塔-西格玛方式3、8路独立通道、4路差分通道4、参考电压可选内部、外部参考电压;(具体参考datasheet)5、有DMA功能;(每个通道都能触发),这个功能我认为非常重要,主要是做交流采样,很方便也很容易处理6、精度可选;二、单通道AD转换单通道ad转换很简单,需要注意的是1、搞清几个AD寄存器的作用、设置的方法P0IFG、PERCFG、P0SEL、ADCCFG、P0DIR2、被测电压的负极要连到CC2430的GND上3、转换后数值的ADCL、ADCH内数值的处理,要将ADCH放在低字节、ADCL放在高字节。
将一个Uint16右移两位(最后两位没有用);即可得到所要的ADC值;4、电压计算公式=ADC/精度*参考电压;ADC:第3条所得精度:根据所选位数,例如位数选14位,精度=2的14次方=16384参考电压:可选内部或者外部,例如选内部的1.25伏。
5、输入电压不要超过参考电压。
二、差分通道转换1、选对输入引脚、设对寄存器2、电压计算公式=ADC/精度*参考电压;这里的精度相对于单通道的精度要再除以2例如:转换的值=4567;位数=14位;参考电压=1.25v 则被测电压=4567/16384*2*1.25=0.6969 伏再例如:转换的值为=12345; 位数=14位;参考电压=1.25v 则被测电压=(12345-16384)/16384*2*1.25=-0.6163 伏三、使用差分通道转换时如何进行补偿所有的AD器件都有可能有一定的0点偏差,即电压输入为0时,转换结果不为0,有可能大于0,也有可能小于0.所以,要得到正确的结果就要进行补偿。
S3C2410GPIO及AD转换
总结与展望
● 优 势 : . 性 能 稳 定 :S3C2410 GPIO及D转 换具 有较 高的 稳定 性能 够保 证数 据的 准确 性和 可靠 性。 b . 兼 容 性 强 : S3C2410 GPIO及D转 换支 持多 种接 口可 以方 便地 与其 他设 备进 行通 信。 c . 功 耗 低 :S3C2410 GPIO及D转换 的功 耗 较低可以降低设备的能耗提高设备的续航能力。
D转换器的精度和速度取决 于其内部结构和算法
工作原理:将模拟信号转 换为数字信号
转换精度:12位
转换速度:100kHz
应用领域:工业控制、医 疗设备、通信设备等
温度测量:通过D转换获取温度传感器的输出信号实现温度测量 压力测量:通过D转换获取压力传感器的输出信号实现压力测量 电流测量:通过D转换获取电流传感器的输出信号实现电流测量 电压测量:通过D转换获取电压传感器的输出信号实现电压测量
S3C2410 GPIO寄存器:用于控 制GPIO引脚的状态和功能
S3C2410 D转换寄存器:用于 控制D转换器的工作模式和数据 读取
S3C2410 GPIO控制寄存器: 用于设置GPIO引脚的输入输 出模式、中断触发方式等
S3C2410 D转换控制寄存器: 用于设置D转换器的采样频率、 分辨率等
GPIO在S3C2410芯 片中的作用
GPIO的基本操作
GPIO的应用场景
GPIO的常见问题及 解决方案
D转换(模数转换)
添加标题
D转换:将模拟信号 转换为数字信号的过 程
添加标题
主要应用:传感器、 音频、视频等领域
添加标题
转换方式:逐次比较、 双积分、逐次逼近等
添加标题
转换精度:取决于DC 的分辨率和采样频率
面向物联网的嵌入式系统开发 07-CC2530 ADC模数转换应用开发
两个引脚之间的差分被转换,可以是负数。 当ADCCON1.EOC设置为1时,数字转换结果可
以获得,且结果总是驻留在ADCH和ADCL寄存器组合的MSB段中。 中断请求:通过写ADCCON3触发一个单通道转换完成时,将产生一个中断,而完成 一个
序列转换时,是不产生中断的。当每完成一个序列转换,ADC将产生 一个DMA触发。
10:50 / 10
CC2530的ADC寄存器介绍
CC2530中与ADC相关的寄存器有6个,这6个寄存器分别是: ADCH(ADC转换结果高位存放寄存器) ADCL(ADC转换结果低位存放寄存器) ADCCON1(ADC通用控制寄存器1) ADCCON2(ADC通用控制寄存器2) ADCCON3(ADC通用控制寄存器3)
ADC模块的信号输入
端口0引脚可以配置为ADC输入端,依次为AIN0~AIN7:
可以把输入配置为单端输入或差分输入。 差分输入对:AIN0~AIN1、AIN2~AIN3、AIN4~AIN5、AIN6~AIN7。
片上温度传感器的输出也可以作为ADC的输入用于测量芯片的温度。
可以将一个对应AVDD5/3的电压作为ADC输入,实现电池电压监测。 负电压和大于VDD的电压都不能用于这些引脚。 单端电压输入AIN0~AIN7,以通道号码0~7表示;四个差分输入对则以 通
道号码8~11表示;温度传感器的通道号码为14;AVDD5/3电压输入的通道 号码为15。
10:50 / 9
ADC相关的几个概念
序列ADC转换:可以按序列进行多通道的ADC转换,并把结果通过DMA传送到存储器,而 不需要CPU任何参与。 单通道ADC转换:在程序设计中,通过写ADCCON3寄存器触发单通道ADC转换,一旦寄 存器被写入,转换立即开始。 参考电压:内部生成的电压、AVDD5引脚、适用于AIN7输入引脚的外部电压,或者 适用于 AIN6~AIN7输入引脚的差分电压。 转换结果:数字转换结果以2的补码形式表示。对于单端,结果总是正的。对于差分配置,
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。
zigbee CC2530的AD电压表实例
}
void main(void) {
uchar i=0; char vol[6]; float average; float temp; P1_0 = 0; ClockInit(); UARTInit(); SET_IO_PORT_DIR(1,0,IO_OUT); //设置 LED,作为 ADC 采样进行的标志 IO_FUNC_PORT_PIN(1, 0, IO_FUNC_GIO);//INIT_LED(); IEN0 = IEN1 = IEN2 =0;
*************************************************************/ void delay(uint z) {
uint x,y; for(x=z; x>0; x--)
for(y=590; y>0; y--);
}
/*********************************************************** 初始化时钟参数
float getVol(void)
{
uchar i = 0;
uint value = 0; long uint AdcValue = 0;//防止溢出
float vol = 0.0; SET_IO_PORT_DIR(0,6,IO_IN);//设置 P0..6 为输入模式 ADC_ENABLE_CHANNEL(6); //使能通道 6 作为 ADC 的采样通道
幸福的小阿狸出品 from hb.jz.yangtzeu /****************************后面是头文件**************************/ /**********************全部加入工程后可直接运行********************/
CC2530单片机AD转换位数的测验
办公自动化杂志0前言CC2530单片机是一款用于2.4GHzIEEE802.15.4的在物联网搭建底层传感网络时常用的一款芯片。
其内部使用业界标准的增强型8051CPU,整合了领先的RF 收发器,具有8KB 容量的RAM,具备4种不同容量的系统内可编程闪存和其它许多强大的功能。
CC2530集成了单片机芯片和无线收发芯片从而可以将检测到的各种数据通过无线方式发送给物联网网关。
其采集的数据可以基本分为数字量和模拟量,例如红外传感数据可以用数字量1或者0来表示检测对象的存在与否,温度传感数据可以使用模拟电压表示,从而以模拟量的形式来表示温度。
处理数字量可以通过串口等方式直接获取,然后通过无线方式发送,但是对于模拟量,为了适应计算机内部的处理,就必须首先转换为数字量,也就是进行AD 转换。
AD 转换[1]是将输入的模拟信号转换为数字信号的过程。
各种被测量的物理量,例如速度,温湿度,压力等都是一些连续变化的物理量,传感器将其转换为对应的电压和电流就是模拟信号。
在CC2530的技术手册[2]中可以看到,CC2530单片机的ADC 模块支持最高14位二进制的模拟数字转换,具有12位的有效数据位,可以进行序列转换和单通道转换。
在多次转换过程中发现,采用单通道转换其结果与实际物理量存在偏差,甚至有时出入较大,因此设计CC2530测验系统来检验CC2530的AD 转换的转换位数。
1测验系统设计思路设计的基本思路是,通过ADC 的满量程测量、半量程测量和接地测量,分别针对3.3V,1.25V 和0V 的电压输入进行ADC,直接获取转换结果显示在PC 端,对比分析转换结果,从而得到真实的有效位数。
首先完成硬件连接。
选择模拟电压输入,通过CC2530AD 转换之后经串口在PC 端直观看到转换结果的硬件电路;接着设计软件程序,实现CC2530AD 转换、芯片与PC 机之间的串口通信。
在程序中设置CC2530不同的有效转换位数,观察不同输入电压在不同的有效位数下得到的转换结果,从而可以分析出CC2530单片机ADC 实际支持的有效位数。
CC2530单片机技术与应用-模数转换应用知识分享
任务一 实现外部电压值AVDD的测量
三、相关知识 模拟/数字转换 (Analog to Digital Converter,简称ADC) 是将输入的模拟信号转换为数字信号。各种被测控的物理 量(如:速度、压力、温度、光照强度、磁场等)是一些 连续变化的物理量,传感器将这些物理量转换成与之相对 应的电压和电流就是模拟信号。单片机只能接收数字信号, 要处理这些信号就必须转换成数字信号,模拟/数字转换是 数字测控系统中必须的信号转换。
任务一 实现外部电压值AVDD的测量
三、相关知识 3.ADC的工作模式 (1)ADC模块的输入 对于CC2530的ADC模块,端口P0引脚可以配置为ADC输 入端,依次为AIN0~AIN7。可以把输入配置为单端或差分 输入。在选择差分输入的情况下,差分输入包括输入对 AIN0-AIN1、AIN2-AIN3、AIN4-AIN5和AIN6-AIN7。 除了输入引脚AIN0-AIN7,片上温度传感器的输出也可以选 择作为ADC的输入用于温度测量;还可以输入一个对应 AVDD5/3的电压作为一个ADC输入,在应用中这个输入可 以实现一个电池电压监测器的功能。
任务一 实现外部电压值AVDD的测量
三、相关知识 2.CC2530的ADC模块 CC2530的ADC模块支持最高14位二进制的模拟数字转换, 具有12位的有效数据位。它包括一个输入多路切换器,具 有8个各自可配置的通道;以及一个参考电压发生器。转换 结果通过DMA写入存储器,还具有多种运行模式。ADC模 块结构如图6.1所示。
模数转换应用
目录
1 实现外部电压AVDD的测量 2 实现电压值AVDD/3的测量
任务一 实现外部电压值AVDD的测量
一、任务描述
编写程序实现实验板测定芯片外部光敏传感器的电压,通过串口发送电 压值。实验板上安装光敏传感器,经ADC转换以后通过串口将电压值 发送给PC,可以通过串口调试软件读取电压值。具体工作方式如下: ①通电后,LED1熄灭。 ② UART0串口初始化。 ③设置ADC。 ④LED点亮。 ⑤开启单通道ADC。 ⑥ADC对通道0进行模数转换测量电压。 ⑦发送字符串测量电压值。 ⑧LED熄灭。 ⑨延时一段时间。 ⑩返回步骤④循环执行。
CC2530单片机 AD 转换
• 各种被测控的物理量(如:速度、压力、 温度、光照强度、磁场等)
模拟信号 • 传感器将这些物理量转换成与之
相对应的电压和电流
数字信号 • 单片机系统只能接收数
字信号
2、CC2530的ADC模块
CC2530的ADC模块支持最高14位二进制的模拟数字转换,具有12位的有 效数据位。它包括一个模拟多路转换器,具有8个各自可配置的通道;以及一个 参考电压发生器。转换结果通过DMA写入存储器,还具有多种运行模式。
ADCCON3控制寄存器一旦写入控制字,ADC转换就会启动, 使用while()语句查询ADC中断标志位ADCIF,等待转换结 束。
ADC转换结束,读取ADCH、ADCL并进行电压值的计算。测 得电压值value与ADCH、ADCL的计算关系是: Value = (ADCH*256+ADCL)*3.3 /32768
4、ADC的控制寄存器 ADC控制寄存器ADCCON1
位 名称 复位
7 EOC
0
6
ST
0
5~4
STSEL[ 1~0]
11
3~2
RCTRL[ 1~0]
00
1~0 --
11
R/W R/H0
--
R/W1 R/W R/W
描述
转换结束。当ADCH被获取的时候清除。如果已读取前一数
据之前,完成一个新的转换,EOC位仍然为高。
个引脚之间的差分被转换,这个差分可以是负符号数。
• ADC转换结果由ADCCON1来控制,当数字转换结束时,
转换结果
转换结果存放在寄存器ADCH和ADCL中。
ADC中断
• ADC中断是通过ADCCON3触发控制的,当一个单个转换 完成时,ADC将产生一个中断,当一个转换序列完成时,
单片机技术与应用06_CC2530的AD转换
2、相关寄存器
ADC有三种控制寄存器:ADCCON1,ADCCON2和ADCCON3。 这些寄存器用于配置ADC,以及读取ADC转换的状态。
ADCCON1:设置ADC转换的状态 (启动方式、开始、停止转换)
ADCCON2:设置转换序列的执行方式 (通道号码、参考电压和抽取率)
ADCCON3:设置单个转换的执行方式 (通道号码、参考电压和抽取率)
01
3:0
SCH[3:0]
0000
ADCCON3 - ADC控制寄存器
R/W
描述
R/W
选择用于单通道转换的参考电压
00:内部参考电压 01:AIN7引脚上的外部参考电压 10:AVDD5引脚 11:AIN6-AIN7差分输入外部参考电压
R/W
设置单通道ADC转换抽取率。抽取率也决定完成转换需要的时间和分辨率。 00:64抽取率(7位ENOB) 01:128抽取率(9位ENOB) 10:256抽取率(10位ENOB) 11:512抽取率(12位ENOB)
1010:AIN4-AIN5 1011:AIN6-AIN7
1100:GND
1110:温度传感器
1111:VDD/3
2、相关寄存器
位
名称
APCFG – 模拟I/O配置寄存器
复位 R/W
描述
7:0 APCFG[7:0] 0x00
R/W
模拟外设I/O配置。 APCFG[7:0]选择P0.7~P0.0作为模拟I/O 0:模拟I/O禁用 1:模拟I/O使用
2、相关寄存器
位
名称
7
E0C
复位 0
6
ST
0
5:4
STSEL[1:0]
11
CC2430简介
一、
CC2430
射频及模拟收发器
CC2430的接收器是基于低-中频结构之上的,从天线接收的RF信号经低噪声放大 器放大并经下变频变为2MHz的中频信号。中频信号经滤波、放大,在通过A/D转 换器变为数字信号。
天线
低噪声放大器
下变频
滤波
放大
A/D转换器
一、
CC2430
在发射模式下,位映射和调制是根据IEEE 802.15.4的规范来完成的。调制(和 扩频)通过数字方式完成。被调制的基带信号经过D/A转换器再由单边带调制器 进行低通滤波和直接上变频变为射频信号。最终,高频信号经过片内功率放大 器放大以达到可设计的水平。
在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过 中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。
一、
CC2430
MCU和存储器子系统
CC2430集成了4个振荡器用于系统时钟和定时操作:一个32MHz晶体振荡器,一 个16MHz RC-振荡器,一个可选的32.768kHz晶体振荡器和一个可选的 32.768kHz RC 振荡器。 高速用于主时钟、低速用于外设 晶体振荡器需外接,RC振荡器内部集成
扩展学习:精度和分辨率
CC2431无线定位网络系统广泛应用前景:在煤矿井下人员定位系统,监狱人 员管理系统,集装箱运输跟踪系统,长距离RFID系统,车辆管理系统,人员管 理系统,运动会运动员的计时计圈系统,城市公交智能站台和车辆调度的 智能管理系统,列车、车厢自动抄号、调度管理系统,小区门禁系统等。
一、
CC2430
MCU和存储器子系统
CC2430也集成了用于用户自定义应用的外设。一个AES协处理器被集成在 CC2430,以支持IEEE802.15.4 MAC 安全所需的(128位关键字)AES的运行, 以实现尽可能少的占用微控制器。
面向物联网的嵌入式系统开发 07-CC2530 ADC模数转换应用开发
10:50 / 7
ADC模块特征
可选取的抽取率,设置分辨率(7~12位)。 8个独立的输入通道,可接收单端或差分信号。 参考电压可选为内部单端、外部单端、外部差分或AVDD5。 单通道转换结束可产生中断请求。 序列转换结束可发出DMA触发。 可将片内温度传感器作为输入。 电池电压测量功能。
10:50 / 8
4313任务目标?使用cc2530微处理器模拟电子秤采集转换的电压通过编辑程序使用cc2530微处理器的adc外设实现对cc2530微处理器底板的电源电压检测通过使用iarfor8051开发环境的调试窗口查看adc的电压转换值并将电压采集值转换为电压物理量
CC2530和STM32嵌入式接口技术开发
3.4 CC2530 ADC模数转换应用开发
ADC模块的信号输入
端口0引脚可以配置为ADC输入端,依次为AIN0~AIN7:
可以把输入配置为单端输入或差分输入。 差分输入对:AIN0~AIN1、AIN2~AIN3、AIN4~AIN5、AIN6~AIN7。
片上温度传感器的输出也可以作为ADC的输入用于测量芯片的温度。
可以将一个对应AVDD5/3的电压作为ADC输入,实现电池电压监测。 负电压和大于VDD的电压都不能用于这些引脚。 单端电压输入AIN0~AIN7,以通道号码0~7表示;四个差分输入对则以 通
10:50 / 12
任务目标
使用CC2530微处理器模拟电子秤
采集转换的电压,通过编辑程序使 用CC2530微处理器的ADC外设实 现对CC2530微处理器底板的电源 电压检测,通过使用IAR for 8051 开发环境的调试窗口查看ADC的电 压转换值,并将电压采集值转换为 电压物理量。
10:50 / 13
无线传感器网络实验教程四---ADC实验
ADC输入端口
ADC输入可以将端口配置成单端或差分输入
差分输入对包括AIN0-1, AIN2-3, AIN4-5, AIN6-7 电池电压可作为ADC输入(AVDD5)
Copyright:柯宗武
单个ADC转换程序设计流程
CC2530 ADC可进行序列转换和单个ADC转换。 单个ADC转换流程如下:
?当按下down键时使用数码管显示电压值当按下up键时使用数码管显示电压值当按下left键时使用数码管显示电压值当按下right键时使用数码管显示电压值
无线传感器网络实验教程 模数转换实验
主讲教师:柯宗武 2013年3月
本章内容
CC2530 AD转换简介 CC2530 单端AD转换过程 CC2530 AD转换程序举例 实验要求: 当按下down键时,使用数码管显示电压值, 当按下up键时,使用数码管显示电压值,当按 下left键时,使用数码管显示电压值,当按下 right键时,使用数码管显示电压值。
设置ADC转换输入端口 使用ADCCON3进行单次ADC转换的配置,包括选 择参考电压、分辨率等。 使用ADCCON1启动或检测ADC转换状态 通过ADCH[7:0](高8位),ADCL[7:2](低6位) 读取转换的值。
Copyright:柯宗武
单个ADC转换程序设计流程---设置ADC转换 输入端口
APCFG在 对应ADC输入端口要设置成外设输入方式。 ioCC2530.h中也 例将P0.6作为ADC输入端口 被定义为 ADCCFG P0DIR &= ~(0x01<<(6));// P0.6置零,输入模式
02 片内温度AD实验
4. 实验步骤
使用配套 USB 线连接 PC 机和 UP-CUP IOT-6410-II 型设备,设备上电,确保打开 ZIEBEE 模块开关供 电。 使用 CCD_SETKEY 按键选择 ZIGBEE 仿真器要连接的 ZIGBEE 设备模块(根据 LED 指示灯判断)。 将系统配套串口线一端连接 PC 机,一端连接到平台上靠近 USB 口的串口(RS232-2)上。 启动 IAR 开发环境,新建工程,将 Exp 实验工程中代码拷贝到新建工程中。 在 IAR 开发环境中编译、运行、调试程序。 使用 PC 机自带的超级终端连接串口,将超级终端设置为串口波特率 57600、8 位、无奇偶奇校验、无硬 件流模式,即可在终端收到模块传递过来的温度值。
TEL: 010-82114870 FAX:总机转 828 82114887
//位置 1 P0 口 //P0 用作串口 //UART 方式 //baud_e = 10; //波特率设为 57600
82114890 82114944
8
博创科技 UP-TECH
U0CSR |= 0X40; IEN0 |= 0x84; }
//允许接收 //开总中断,接收中断
/**************************************************************** *函数功能 :串口发送字符串函数 * *入口参数 : data:数据 * * len :数据长度 * *返 回 值 :无 * *说 明 : * ****************************************************************/ void UartTX_Send_String(char *Data,int len) { int j; for(j=0;j<len;j++) { U0DBUF = *Data++; while(UTX0IF == 0); UTX0IF = 0; } } void UartTX_Send_word(char word) { U0DBUF = word; while(UTX0IF == 0); UTX0IF = 0; } /**************************************************************** *函数功能 :主函数 * *入口参数 :无 * *返 回 值 :无 * *说 明 :无 * ****************************************************************/ void main(void) { char i; char temperature[10]; INT16 avgTemp; initUART(); // 初始化串口 initTempSensor(); // 初始化 ADC while(1) { avgTemp = 0; for(i = 0 ; i < 64 ; i++) { avgTemp += getTemperature(); avgTemp >>= 1; } // avgTemp /= 64; sprintf(temperature, (char *)"%dC", (INT8)avgTemp); UartTX_Send_String(temperature,4);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CC2430 CC2530 片内 AD 转换详解
本周五开始就开始学习 CC2430 的 AD 转换模块。
看似简单,但是费了我休息日 休息日全部的 时间。
其中最严重的问题——这个片内的 AD 转换的分辨率到底是多少位, 位还是 14 位。
这个片内的 12 开门见山:经过多次试验和查找的资料 次试验和查找的资料,我认为 TI 的数据手册是对的,最高分辨率为 最高分辨率为 12 位,分为 4 档 7 位,9 位,10 位和 12 位。
毫无疑问,CC2430/CC2530 中的片内 AD 转换 10 器采用 simga-delta 原理,和大多数的逐次比较式不同 和大多数的逐次比较式不同。
下面我们来简单看看,各派是如何描述的 各派是如何描述的,为什么会有这个分歧。
1 数据手册
英文的数据手册写的非常清楚,AD 转换可以达到 12 位精度,可以分为 4 档,分 中文和英文的数据手册写的非常清楚 别是 7 位,9 位,10 位,12 位。
虽然数据手册写的非常清楚, ,但是也留给人一点悬念。
第一,数据手册中出现了一个大 数据手册中出现了一个大 家都比较陌生的抽取率,这个概念或许是 sigma-delta 类型 AD 所特有的。
第二,有关 ADCL 这个概念或许是 有关 和 ADCH 寄存器,其中 ADCH 位 8 位,全部使用;而 ADCL 使用了高 6 位,而低 2 位没有使 用。
所以 ADC 结果寄存器组成了一个 14 位有效的寄存器,这就给人很大的想象空间 这就给人很大的想象空间,到底 这个 AD 的分辨率有多少!! !
2 网上和图书资料
学习 CC2430 就只有一本书, ,该书关于片内 AD 章节中,第一句话就提到 AD 转换为 14 位分辨率(见 Zigbee 技术实践教程 北航出版社 P157) 。
在本书的寄存器说明中, ,提到分 辨率有关的设置时,是这样写的: : 00:7 比特 01:9 比特 10:10 比特 11:12 比特 在书中的 ADCCON2 和 ADCCON3 寄存器中可以看到。
而英文手册中, 却是写的抽取率 抽取率, 括号中写了分辨率。
本书该部分由点含糊其次 本书该部分由点含糊其次。
书中提供了 AD 转换的相关代码,把这些寄 把这些寄 存器的操作写成一组宏定义:代码是这样的 代码是这样的: // Resolution (decimation rate): #define ADC_8_BIT 0x00 // 64 decimation rate #define ADC_10_BIT 0x10 // 128 decimation rate #define ADC_12_BIT 0x20 // 256 decimation rate #define ADC_14_BIT 0x30 // 512 decimation rate 看宏定义的名称,我自然认为 ADC 的分辨率为 8,10,12,14 四个档位。
再者, 华中科技大学 刘志鹏同写了一篇 ZigBee ADC 使用的文章, 《Zigbee 之旅 名为 (六) : 几个重要的 CC2430 基础实验—— ——ADC 单次采样》 ,文中也提到 AD 的分辨率为 14 位,而不 位 是数据手册中的 12 位。
/hustlzp/archive/2011/02/25/1962572.html
3 和我一样的纠结者
但是网上也有一些纠结于此问题的 纠结于此问题的同仁。
例如飞比论坛中的 shamiexiaotan 同学,他也 同学 在这个问题上纠结很久,发了几个 几个帖子,最后写了关于《CC2530 的 AD 重大发现》一文 一文,里 面描述了 CC2530 ZigBee 协议栈中代码和数据手册不符 代码和数据手册不符的情况。
/forum.php?mod=viewthread&tid=3167 国内有觉得有问题的,国外也 国外也有人觉得很迷惑。
例如 TI 的官网论坛上,也有人提出例 也有人提出例 如这个问题。
/support/low_power_rf/f/155/t/15944.aspx TI 的工作人员的回复倒是干脆,也点破了大多数人的 也点破了大多数人的疑问。
我认为这句话的意思是这样的 我认为这句话的意思是这样的“根据测试的结果,CC2430 的分辨率从 14 位降低为 12 位,但它还是那个 ADC,这就是为什么 这就是为什么它还是一个 14bit 的寄存器(测试的结果貌似和设计 测试的结果貌似和设计 的初衷不相同,就是这个意思!。
) 。
无论 ADC 如何被使用,转换结果的高位总从 ADCH 寄存 器的最高位开始保存。
剩余的 2 位作为噪声 位作为噪声,实际没有任何的作用。
”
总结
1 TI 的 CC2430 的片内 AD 转换采用 sigma-delta 原理,由于测试结果不能没有达到 由于测试结果不能没有达到设计 要求,所以 TI 把分辨率从 14 位调整至 12 位。
(或许以前的说明书出现了 14 位分辨率的情 况) 。
分辨率分为 7 位,9 位,10 位和 12 位。
2 AD 转换的结果采用补码的形式保存 所以若采用 7 位分辨率, 转换的结果采用补码的形式保存, 可以得到的值范围在-64 可以得到的值范围在 到 63 之间。
2 AD 转换的结果实行左对齐, ,而且该对齐方式不能选择。
如果使用 7 位分辨率 分辨率,结果 为于 ADCH 寄存器的高 7 位。
其他的分辨率以此类推 其他的分辨率以此类推。
。