微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > cc2530 光敏传感器adc转换问题!

cc2530 光敏传感器adc转换问题!

时间:10-02 整理:3721RD 点击:

协议栈是2.5.1-a,想利用热敏电阻接P0_5,以下是我用来读取adc的值

uint16 ReadLightData( void )
{
  uint16 reading = 0;

  uint16 total = 0; 

  int i;
  P0SEL &= ~0x20;//设置为普通IO
  P0DIR &= ~0x20; // 设置P0.5为输入方式
  asm("NOP");asm("NOP");

for(i = 0; i < 4; i++)
{
APCFG |= 1 << 5 ; //注意这里是设置ADC输入通道!
ADCCON3 = 0x80|0x20|0x05;   //AVDD5参考电压 10位分辨率  通道5使能
ADCCON1 |= 0x30;//手动模式
ADCCON1 |= 0x40; //开启单通道ADC

while(!(ADCCON1 & 0x80)); //等待AD转换完成

reading = ADCL;
 
reading |= ((uint16) ADCH) << 8;


reading >>= 6;
 
total += reading;
}
total >>= 2; //求4次平均值
return total;
}

这样得出来的adc值,在不懂光敏电阻情况下,输出值也是时大时小,有0-1000浮动,本以为adc这东西最简单了,搞了一天都这样,真郁闷!

 这是硬件连接方式,接在P0_5

把采样间隔调大一些,我们的是Sigma delta的ADC,采样保持的时候会抽电流,如果不影响光敏电阻的情况下,你在ADC输入脚挂一个大一点的电容试试呢?

电容该多大?怎么接法呢?求教!

我当时帮客户调的时候是1uf的电容,挂在input引脚上接地,现象跟你类似,但不知道对你适用否,仅供参考

 加了1uf的电容,确实不会波动很大,他是一点一点的上升,又一点一点的下降,但是我将相同的程序运行在开发板上,P0_5不加电容,却能够正常的反馈出光敏值,难道开发板上的P0_5加了什么电路不成?可是万用表测得P0_5并没外加什么电路!这就奇了怪了,难道淘宝的ZigBee芯片质量差点?还是焊脚的焊锡影响ad测量值?

你好 我想问一下我用的光敏电阻,采集到的最大值怎么不会超过127,搞不清什么情况。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top