微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 2630裸机低功耗问题

2630裸机低功耗问题

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

新年好!

我现在使用2630裸机(不跑协议栈)开发项目,初始化后进入休眠状态整机电流只有1,2uA,使用定时器唤醒发送完数据后电流就提升到9uA左右,降不到原来的状态,请大家帮忙分析一下原因,谢谢!

发射部分代码(执行这部分代码后电流才提高):

static void appStartRadioTx() {

memset(&uPerPayload, 0x00, sizeof(uPERPayload_t));

perTestCfg.radioSetup.module = CC26504XS;
perTestCfg.radioSetup.protocol = PROTOCOL_802_15_4;
perTestCfg.radioSetup.channel = 0X0B;
perTestCfg.radioSetup.mode = RADIO_MODE_NORMAL;
perTestCfg.radioSetup.dir = RADIO_DIR_TX;
perTestCfg.pktRate = 1;
perTestCfg.radioSetup.txPower = 0x05; 

memcpy(uPerPayload.ieee.padding,send_data,send_len);
perTestPayload.pData = &uPerPayload;

// Initialize payload used for TX periodic transmissions based on radio protocol
appConfigurePayload[perTestCfg.radioSetup.protocol](&perTestPayload);

// Set radio configuration to look for payload at this address
perTestCfg.radioSetup.pTxPayload = &perTestPayload;

//Send message to radio requesting to start TX
pTaskMsgRec_t pMsgRec = taskMsgAlloc(sizeof(void*));

pMsgRec->msg.msgType = RADIO_START_TX;
pMsgRec->msg.data = &perTestCfg;

// Send message to radio task environment and wake task
taskEnqueueMsg(appTaskEnv.pTaskEnv1 , pMsgRec);
taskSignal(appTaskEnv.pTaskEnv1, EVT_TASK_MESSAGE);
}

发射完毕后处理程序:

static void radioCleanup() {

// Set radio active flag false to avoid accesses to radio
radio_active = false;

// Disable and clear radio interrupts
HWREG(RFC_DBELL_BASE + RFC_DBELL_O_RFCPEIEN) = 0;
HWREG(RFC_DBELL_BASE + RFC_DBELL_O_RFCPEIFG) = 0;

// Release need for RF Core. When RFC goes down, request for SYSBUS will also stop
Power_releaseDependency(DOMAIN_RFCORE);

// Switch back to RCOSC
Power_releaseDependency(XOSC_HF);
// Allow device to standby again
Power_releaseConstraint(Power_SB_DISALLOW);

// Software step input to sequencer
radioSequencerInput(RSI_SW_DONE);
}

请问是否还有哪些地方没有关闭处理?谢谢!

您好,看您在开发CC2630,可以私下问您几个问题吗?可以加一下QQ2533571429吗?我在学生,想请教一些问题,非常感谢啦!

 

你不用TI的协议栈跑裸机,我没这样搞过。低功耗无非就是几样东西。1.程序里面有没有定时器在运行(包括发送失败会有重发的,还有什么需要有ACK的)。2.GPIO口有没有漏电流。3.AF有没有处于空闲状态(不要发送,也不要接收)。以上是个人建议,希望没有误导你。

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

网站地图

Top