搜索
bottom↓
回复: 6

CC2430 2530 AD转换分辨率之“争”

[复制链接]

出0入0汤圆

发表于 2012-3-6 16:57:55 | 显示全部楼层 |阅读模式
本周五开始就开始学习CC2430的AD转换模块。看似简单,但是费了我休息日全部的时间。其中最严重的问题——这个片内的AD转换的分辨率到底是多少位,12位还是14位。
        开门见山:经过多次试验和查找的资料,我认为TI的数据手册是对的,最高分辨率为12位,分为4档 7位,9位,10位和12位。毫无疑问,CC2430/CC2530中的片内AD转换器采用simga-delta原理,和大多数的逐次比较式不同。
        下面我们来简单看看,各派是如何描述的,为什么会有这个分歧。
        1 数据手册
中文和英文的数据手册写的非常清楚,AD转换可以达到12位精度,可以分为4档,分别是7位,9位,10位,12位。

(原文件名:AD转换精度.png)

虽然数据手册写的非常清楚,但是也留给人一点悬念。第一,数据手册中出现了一个大家都比较陌生的抽取率,这个概念或许是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位。
http://www.cnblogs.com/hustlzp/archive/2011/02/25/1962572.html

        3 和我一样的纠结者
        但是网上也有一些纠结于此问题的同仁。例如飞比论坛中的shamiexiaotan同学,他也在这个问题上纠结很久,发了几个帖子,最后写了关于《CC2530的AD重大发现》一文,里面描述了CC2530 ZigBee协议栈中代码和数据手册不符的情况。
http://www.feibit.com/forum.php?mod=viewthread&tid=3167
        国内有觉得有问题的,国外也有人觉得很迷惑。例如TI的官网论坛上,也有人提出例如这个问题。
http://e2e.ti.com/support/low_power_rf/f/155/t/15944.aspx
TI的工作人员的回复倒是干脆,也点破了大多数人的疑问。

(原文件名:TI工作人员回复.png)

我认为这句话的意思是这样的“根据测试的结果,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位。其他的分辨率以此类推。

出0入0汤圆

发表于 2012-10-16 10:05:16 | 显示全部楼层
保存了!

出0入0汤圆

发表于 2012-10-20 12:04:11 | 显示全部楼层
好 谢谢楼主

出0入0汤圆

发表于 2012-10-20 13:05:52 | 显示全部楼层
也有碰到这种描述,16bit data output,实际只有12bit的分辨率,低4位都是噪声。

出0入0汤圆

发表于 2013-9-27 22:34:52 | 显示全部楼层
看看,学习了!!!!!!!!!

出0入0汤圆

发表于 2013-11-8 20:40:40 | 显示全部楼层
学习了,谢谢,才开始学习,混沌状态中

出0入0汤圆

发表于 2013-11-14 17:11:26 | 显示全部楼层
谢谢楼主的经验之谈~!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 10:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表