微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540睡眠和引脚问题

CC2540睡眠和引脚问题

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

本人学生在做毕业设计,希望实现通过CC2540闲置引脚控制来芯片休眠。但是目前比较迷茫,主要有一下几个问题:

1. CC2540的 Px.y 引脚配置为输入时,Px 这个寄存器是什么作用?

2. 调用哪个函数可以快速使CC2540进入休眠状态?

3. 上述两个问题,协议栈有可以参考的例程吗?

4. CC2540在连接状态下能通过引脚控制立即进入睡眠吗?

5. CC2540正常工作时(基于simpleBLEperipheral)工作在什么PM模式?休眠时应该在哪个PM?

Haitao,

1. 你是说比如 PxSEL? Px代表拿个GPIO端口。比如P0, P1, 整个寄存器就是配置这个端口中每个IO的输入输出功能。你可以看一下datasheet: http://www.ti.com/lit/ug/swru191f/swru191f.pdf

2. 你有兴趣可以看一下halSleep()这个函数。但是不要自己随便去掉用或者修改或者复制里面代码粘帖到其他地方去。这是系统自动调度的,其他地方调用会发生问题。

3. 协议栈所有的工程你都可以参考。推荐你看一下keyfob,或者simpleBLEperipheral,simpleBLECentral。

4. 不要这样做。不是你想睡眠就睡眠的。特别是在连接建立状态下。

5. 有定时任务,或者连接状态下,系统的低功耗模式是PM2, 没有定时任务和连接,就会进入PM3. 每个模式下的特点,可以看前面的datasheet.

感谢您的回答,对于这些问题我想有必要补充一下:

1. 不是PxSEL,是Px,就是P0,P1,P2这三个寄存器;

2. halsleep这个函数有看到,另外还注意到了HalKeyEnterSleep和HalKeyExitSleep这两个函数,请问它们有什么用呢?为什么HalKeyEnterSleep是空的?为什么HalKeyExitSleep只有一个读按键的函数?

3. 谢谢,有看到。但是Keyfob和主从机程序并没有做睡眠操作啊?

4. 如果先断开全部连接再睡眠呢?

5. PM3可以按键边沿唤醒吗?

Yan,

我最近几天一直在看功耗问题,仍然没有解决啊,好焦急。

通过DEBUG发现确实进入的是PM2模式,但是连接已经断开,而且做了如下操作:

uint8 turnOnAdv = FALSE;
uint16 gapRole_AdvertOffTime = 0;
GAPRole_SetParameter( GAPROLE_ADVERT_OFF_TIME, sizeof( uint16 ), &gapRole_AdvertOffTime );
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &turnOnAdv );

至于定时任务是指APP层的定时任务么?我觉得是没有定时任务了呢 但还是没有到PM3, 我贴上keyfobdemo.c望能帮助指点迷津啊。8255.keyfobdemo.c

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

网站地图

Top