Dear TI
想用CC2540的AD口来进行采集,开了P0.4,P0.5,P0.6,P0.7四个口,发现同样的配置。当在P0.4,P0.5口加电压的时候,系统功耗会上升很多。
在测量的时候发现,当4个AD口都不加电压的时候,功耗大约在12.5mA左右,将电压加在P0.6,P0.7上时,功耗也几乎没有变化,但当将电压加在P0.4上是,功耗瞬间上到20mA,同时再加1路到P0.5时,系统功耗上到了26mA。测试几块板子都是这个问题。
基本上排除了外围硬件问题,所以想问下TI的工程师,CC2540的P0.4,P0.5口怎么会吸收那么大的电流?有可能是我还有哪儿的配置有问题吗?还是什么问题。
这是我的ADC的GPIO的配置代码:
void hal_gpio_set_adc() { P0 &= ~(BV(4)|BV(5)|BV(6)|BV(7)); //P0口低电平 P0DIR &= ~(BV(4)|BV(5)|BV(6)|BV(7)); //P0口 模式:输入 P0INP |= (BV(4)|BV(5)|BV(6)|BV(7)); //P0口 模式:三态 P0SEL |= (BV(4)|BV(5)|BV(6)|BV(7)); //P0口 IO模式:第二功能 }
外部参考电压选的 AVDD5。
通过进一步测量发现,当将P0.4,P0.5通过1K电阻接到VCC上时,P0.4,P0.5口会流进2mA左右的电流,算出来内部大约是500欧的内阻。
通过补充测试,为排除协议栈的干扰,在新建一个空的工程之后,在里面只做了ADC的IO口的初始化,通过1K电阻接VCC,再重新测量,发现。P0.0,P0.1,P0.2,P0.6,P0.7的电流都很小,大约只有0.02——0.05mA左右。但是P0.3,P0.4,P0.5口有2.6mA左右的电流。
还希望TI的工程师能够不惜赐教~o(∩_∩)o 哈哈