微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于cc2540 低功耗 与 串口的 问题

关于cc2540 低功耗 与 串口的 问题

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

如题,使用cc2540,再宏里面开了POWER_SAVING 这个宏后, 串口一直打印不出来,串口使用了DMA模式,无流控, NPI的api ! 去掉POWER_SAVING 后能够正常打印信息!这里我大体知道是开启POWER_SAVING后进入了休眠模式PM2 导致 串口的晶振 关闭了!

我尝试使用了osal_start_timerEx( MyAPP_TaskID, SBP_MyAPP_EVT, 2000 );定时器来唤醒串口,定时启动打印信息,无效!

网上查询可以使用osal_pwrmgr_device(PWRMGR_ALWAYS_ON); 来唤醒,同样没有打印输出!

相关代码如下:

MyApp_processEvent()

{

  .....

     if ( events & SBP_MyAPP_EVT)

     {

          osal_pwrmgr_device(PWRMGR_ALWAYS_ON);

         ...............

         NPI_WriteTransport(Msg,strlen(Msg));

        .................

        osal_pwrmgr_device(PWRMGR_BATTERY);

     }

}

由于这边没有外部中断 ,也使用不了流控来唤醒, 能不能通过其他代码的中断或者其他来唤醒串口打印信息???

TI的大神,帮忙看看, 万分感谢

请参考http://processors.wiki.ti.com/index.php/SerialBLEbridge_V_1.4.1中    UART (with power management)  这部分

不行的,http://processors.wiki.ti.com/index.php/SerialBLEbridge_V_1.4.1这里提供了三个方法,一个是SPI,一个是不适用电源管理的UART,一个是使用电源管理的流控串口,

  • SPI (with or without power management): using MRDY/SRDY handshaking. The handshaking will be the same regardless of whether or not power management is enabled.
  • UART (without power management): there is no handshaking needed as the device is not going to sleep. Therefore, only the Tx and Rx lines are needed.
  • UART (with power management): using CTS/RTS handshaking to control sleep.

这里我需要使用power management,所以只有第三种,  我考虑是串口发送,不需要接受,同样也就是我这边的CTS管脚是接受不到信息的,也就是唤醒不了sleep,,

有没有其他方法,比如内部发指令来等同于CTS接受到低电平, 来唤醒串口?

我能够控制到串口睡眠就睡眠?

楼主好,我也遇到了同样的问题,开启POWER_SAVING后串口无输出,数据仍然在DMA缓冲txBuf中,这个问题您是怎么解决的?

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

网站地图

Top