微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于CC2541ADC采集的问题

关于CC2541ADC采集的问题

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

先看看程序

osal_pwrmgr_device(PWRMGR_ALWAYS_ON);
APCFG = 0xFF;
P1 = 0x01;//设置P1_0口为高电平
P1DIR |= (1<<0);//设置端口输出状态
P1INP |= (1<<0);//while P1 in input mode,the port state is 3-state
HalAdcSetReference(HAL_ADC_REF_AVDD);

// // SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR_SENSOR_12, SIMPLEPROFILE_CHAR_SENSOR_LEN, SENSOR_SendData12);
// // SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR_SENSOR_34, SIMPLEPROFILE_CHAR_SENSOR_LEN, SENSOR_SendData34);
// // SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR_SENSOR_56, SIMPLEPROFILE_CHAR_SENSOR_LEN, SENSOR_SendData56);

SENSOR_SendData[0]=(0xFFFF-(HalAdcRead(HAL_ADC_CHANNEL_7, HAL_ADC_RESOLUTION_14)<<3)); //将14bit数据统一转换为16bit,方便以后扩展,<<3是因为其输出最高位为符号位,恒为0,。sunming
SENSOR_SendData[1]=(0xFFFF-(HalAdcRead(HAL_ADC_CHANNEL_6, HAL_ADC_RESOLUTION_14)<<3));
SENSOR_SendData[2]=(0xFFFF-(HalAdcRead(HAL_ADC_CHANNEL_5, HAL_ADC_RESOLUTION_14)<<3));
SENSOR_SendData[3]=(0xFFFF-(HalAdcRead(HAL_ADC_CHANNEL_4, HAL_ADC_RESOLUTION_14)<<3));
SENSOR_SendData[4]=(0xFFFF-(HalAdcRead(HAL_ADC_CHANNEL_3, HAL_ADC_RESOLUTION_14)<<3));
SENSOR_SendData[5]=(0xFFFF-(HalAdcRead(HAL_ADC_CHANNEL_2, HAL_ADC_RESOLUTION_14)<<3));
SENSOR_SendData[6]=(0xFFFF-(HalAdcRead(HAL_ADC_CHANNEL_1, HAL_ADC_RESOLUTION_14)<<3));
SENSOR_SendData[7]=(0xFFFF-(HalAdcRead(HAL_ADC_CHANNEL_0, HAL_ADC_RESOLUTION_14)<<3));


osal_pwrmgr_device(PWRMGR_BATTERY);

只要加了

osal_pwrmgr_device(PWRMGR_BATTERY);这一句,AD采集就不准确了,P1_0配置高电平无效。但是想控制功耗必须要运行此句。

有什么办法可以保证ADC采集的准确吗?

采集AD的话,必须要是要再高功耗模式下,才能采集吗?

进入PM3,PM2,PM1后ADC应该停止工作的!

不是你说这个问题

我采集ADC前先关闭电源省电管理osal_pwrmgr_device(PWRMGR_ALWAYS_ON);

采集完后再打开。但是这么做会发现ADC采集会有问题。

测试得功耗一直保持在0-2mA,而且测试模拟I/O引脚的电压也不正确。

正常来说如果正确的话,能看到电流表从12mA到0-2mA一个转变。

我的P1_0脚是作为模拟I/O口的电源电压。

主要是我先配置P1_0 为高电平后,测它电压正确来说应该是约3.3V的。

但是我发现只要调用 osal_pwrmgr_device(PWRMGR_BATTERY); 这个语句后。

这个引脚就会变为低电平了。导致会采集不准确。这个是什么原因呢?

有TI员工帮忙解答下吗?

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

网站地图

Top