微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > 请教CC1110 I/O 状态控制

请教CC1110 I/O 状态控制

时间:12-22 整理:3721RD 点击:

大家好。
       刚学习入门也对电路特性不熟悉,我设想通过某个I/O(如P0_0)用于供电给传感器,当然了这样的目的是要做到能关闭供电的功能,再进入睡眠模式。
       根据学习套件自带的资料和网上的资料,无论哪个办法我用万能表测试均有电流(0.2mA左右)过?(表的一端接IO口,另外一端接芯片的地脚)。不知道标准将I/O设置为读的操作是如何?下边我是抄来的例子

main():
  P0SEL &= ~0X22;  //P0.1 and P0.5 用作一般的IO口  
  P0DIR &= ~0X22;  //P0.1 and P0.5 用作输入   
  P0INP |= ~0X22;//P0的中断,有上拉、下拉
  while(1);

谢谢

Hi George,

如果要将I/O口用于供电给传感器,应该要将该I/O口置于输出的功能吧!

你用万能表的一端接IO口,另外一端接芯片的地脚来测量电流?!那要小心烧坏万用表了,因为测量电流时的万用表内阻很小,如果不串联个电阻再测量的话,稍微有点电压就会使电流表大大超出量程。

如果想测试管脚的输出电流能力,一般是芯片I/O口和地之间接一个可变电阻,再将万能表串联进去,通过改变可变电阻的阻值来测量芯片管脚的输出电流能力。

你测试过你所发上来的那段程序可以编译通过吗?

设置I/O口以P0口为例的话,涉及P0,0SEL,P0DIR,P0INP这几个寄存器,若要用到中断的话,还会涉及PICTL,P0IFG寄存器。具体设置过程请参考CC1110 Example Software,下载地址:http://www.ti.com/litv/zip/swrc085b

再次谢谢你Martin。
        上边的我写漏了几个字,当然能编译过了,不可能犯这样低级的错误而来这里问。
        你告诉我的资料我看了下,确实有用,不过很多学术知识点,对我来说还太过专业了(但大概会引用了),有空再详细学习了。
        今天做了一天的测试,貌似完美了。可能由于个传感器还需要外接电阻,现在比PM2模式多了0.3uA,并且确定是因为对传感器供电接脚的原因。
        到目前为止还有些地方我不知道怎么解释,例如对执行P0_4=0;(关闭)居然要前后加延时代码,否则好像会执行无效,不知道为什么会这样,程序相当简单的。

Hi George,

您说的 “对执行P0_4=0;(关闭)居然要前后加延时代码,否则好像会执行无效” 是你的实验现象吗?

好像并不是这样的,请参考CC1110 Example Software里的 per_test_main.c 文件下的LED设置过程。

程序开始的时候通过调用 INIT_LED1();初始化那个led的管脚后,就可以直接用  LED1 = LED_ON; LED1 = LED_OFF;这样的语句直接控制I/O口了。

也就等效于执行P1_0 = 0,例程里面并没有加延时代码。

Hello Martin,

       我遇到一个问题,P0_0-P0_3 这几个口,其中有一个设置为输入中断模式,另外几个口设置输出模式,当输出口输出高低电平变化后会按照已经被设置的口的边沿触发中断,进入中断里面。请问这个的确是这样嘛?有什么办法解决吗?

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

网站地图

Top