微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541 开启POWER_SAVING后,若也开启HAL_UART=TRUE,则无法进休眠,外部的按键中断也进不了

CC2541 开启POWER_SAVING后,若也开启HAL_UART=TRUE,则无法进休眠,外部的按键中断也进不了

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

CC2541关闭POWER_SAVING情况下,不管是否开启HAL_UART=TRUE,都可以正常进按键中断的

若开启POWER_SAVING后,

若关闭宏HAL_UART=TRUE,则可以直觉进休眠,正常进按键中断,

若开启宏HAL_UART=TRUE,则无法进休眠也无法进按键中断;

请教TI工程师或者热心网友,谢谢!

可怜,没人回复!

自己完善吧,

主要是开启了POWER_SAVING后,DMA uart会启用流控,会启用port0中断,而TI提供的例程中,Port0的串口流中断和port0的按键中断是同一个中断入口,却写成了两个中断服务函数,而没有统一入口。

其实在编译时就有warning提示指向了同一地址,也是自己大意了一直没注意它,

所以修改方法就是把二者的中断合而为一就可以了。

抱歉,没看见这帖子,论坛流量大,有时候确实会忽略个别提问,感谢你把解决方法发出来共享

赞一个

我的做法是禁用DMA流控

你是怎么禁用DMA流控的,?直接关闭宏?这样还是不行吧,我也有试过

你是怎么禁用DMA流控的,?直接关闭宏?这样还是不行吧,我也有试过

在_hal_uart_dma.c文件中,作如下修改,就可以禁用DMA流控。

#if !defined( DMA_PM )
#if defined POWER_SAVING
#define DMA_PM                     0//1
#else
#define DMA_PM                     0
#endif // POWER_SAVING
#endif // !DMA_PM

Viki Shi:

跟前辈一样我也碰到了这个问题。我现在用到CC2541的主要资源如下:

1,Use UART1 with ALT2 mode(P1.7 - RX, P1.6 - TX, P1.5 - RT, P1.4 - CT),  in fact, RT and CT pins are not used yet.

2,Use HandleKeys as below: HAL_KEY_SW_1, HAL_KEY_SW_3, HAL_KEY_SW_4, HAL_KEY_SW_5

3,IAR 预处理设置如下: 

INT_HEAP_LEN=3072
HALNODEBUG
OSAL_CBTIMER_NUM_TASKS=1
HAL_AES_DMA=TRUE    // this is added automatically by IAR during build
HAL_DMA=TRUE              // this is added automatically by IAR during build
POWER_SAVING
xPLUS_BROADCASTER
xHAL_LCD=TRUE
HAL_LED=TRUE
HAL_KEY=TRUE
HAL_UART=TRUE
HAL_UART_ISR=TRUE
HAL_UART_DMA=2

现在产品功能正常 -- IO中断及UART通讯,但电流就是降不下来,总电流19.1mA(去掉UART外接器件,电流为8.9mA)。

参照“作者 summer xu 发表于 2015-11-3 12:08” 的如下建议改动后。总电流降为10.75mA(去掉UART外接器件,电流为0.27mA)。

这个10.75MA的电流怎么也降不下去了,还有哪些高招降低这个电流请指教!,谢谢。

在_hal_uart_dma.c文件中,作如下修改,就可以禁用DMA流控。

?

1

2

3

4

5

6

7

#if !defined( DMA_PM )

#if defined POWER_SAVING

#define DMA_PM                     0//1

#else

#define DMA_PM                     0

#endif // POWER_SAVING

#endif // !DMA_PM

补充: 

每次在UART通讯完毕后,执行了”osal_pwrmgr_device( PWRMGR_BATTERY );   // enter PM2 mode“才使得总电流降为10.75mA(去掉UART外接器件,电流为0.27mA)。但这个多余的10mA电流消耗在休闲的TX,RX线上了,PM2模式好像没把TX/RX关闭一样。

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

网站地图

Top