微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540 打开串口是如何省电,降低功耗

CC2540 打开串口是如何省电,降低功耗

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

我现在遇到这个问题。 把HAL_UART 编译进去后。 耗电7mA 左右。(我把power saving 编译进去了好像也没有用,也是7mA)。  cc2540 是被动接收数据的。 没有给cc240 通过串口发数据的时候, 我想让cc2540 进入省电模式。  然后,当有串口发数据来的时候, 我就要退出省电模式,接收串口数据。

当没有串口数据来的时候    :进入省电模式的代码应该放在哪里? 就调用osal_pwrmgr_device这个函数就行了吗?

当有了串口数据来的时候     :     要怎么退出来?  代码应该怎么写? 要设置中断吗?

这是我的串口接收函数。

void sbpSerialAppCallback(uint8 port, uint8 event)
{
            (void)event;
            int numBytes=0;
            delayMs(30);
            uint8 pktBuffer[SBP_UART_RX_BUF_SIZE]={0}; 

            if ((numBytes = Hal_UART_RxBufLen(HAL_UART_PORT_0)) > 0 )
           {

            (void)HalUARTRead (HAL_UART_PORT_0, pktBuffer, numBytes);

             sbpSerialAppWrite(buf,numBytes);

           }

}
}

YAN~~~

低功耗模式时,串口是无法接收数据的。建议您定时唤醒设备,采用查询方式来做串口

Susan Yang   你好~

那我要怎么知道串口有数据进来呢?

还有要怎么唤醒呢?

我是新手, 希望可以比较详细点。有点代码更好。

thank you~

可以在唤醒后去查询是否有串口数据,可以参考  http://itas109.blog.163.com/blog/static/171911753201382625746963/

关于唤醒,可以使用睡眠定时器,可以参考帖子http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/47302.aspx

HI       Susan Yang 

很感谢您的解答, 但是我还是有一些疑问。

1:  

  INT_HEAP_LEN=3072
HALNODEBUG
OSAL_CBTIMER_NUM_TASKS=1
HAL_AES_DMA=TRUE
HAL_DMA=TRUE
HAL_UART=TRUE

POWER_SAVING

xPLUS_BROADCASTER

HAL_LCD=TRUE
HAL_LED=TRUE
HAL_UART=TRUE
xHAL_UART_TRANS=TRUE
xHAL_UART_GPIO_ISR

我  只要我 把   HAL_UART=TRUE  编译进去。 不管有没有编译 进 POWER_SAVING 都是很耗电的。 有6~7mA左右, 是不是我还没有进入到省电模式呀?要怎么看进入省电模式了没有? 


 2: 我要不要把流控打开呢? 打开流控只要   #define SBP_UART_FC       TRUE   就行了吗? 还要不要写什么代码吗?


3:

                        osal_pwrmgr_device(PWRMGR_ALWAYS_ON)

                        osal_pwrmgr_device(PWRMGR_BATTERY)

                           就用着两个函数就可以切换省电模式了是吧。 但是具体怎样跟 定时器配合起来还是不懂。



##:   我要实现的功能是:  cc2540 上电后。 如果没有串口给cc2540 发来数据 ,我就要cc2540 进入省电模式(要求省电), 如果有数据发来的时候,就切换到正常模式。处理串口发来的数据,处理完后 又进入省电模式。

(我本来的程序是。编译 xPOWER_SAVING     HAL_UART=TRUE  运行起来没有问题。 就是耗电,不管发不发数据都是 6~7 mA)

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

网站地图

Top