你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32l051和cc1101在低功耗模式下问题。

[复制链接]
儒墨 提问时间:2017-9-11 16:32 /
求助!!!遇到个超级奇葩的问题,抠破了头,陷进去了几天也找不出原因,不知道可有大神遇到过相同问题。
调低功耗stop模式已经10uA了,以为能快乐的玩耍,谁知道如下面程序//后面屏蔽的语句,加1个或者2个具体加几句都会有影响没具体试过,都会导致功耗直接100多uA以上。接着在只有10uA程序中又试着加个while(0);功耗也飚到100多uA,我直接加三个while(0);功耗变为了正常的10uA.这现象已经把我弄疯了。
void TIM2_Pin_Close(void)
{
LL_GPIO_InitTypeDef LL_GPIO_InitStruct;
uint8_t i;

//LL_TIM_InitTypeDef  LL_TIM_InitStruct;
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
LL_GPIO_InitStruct.Pin  = LL_GPIO_PIN_0;
LL_GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT;
//LL_GPIO_InitStruct.Speed= LL_GPIO_SPEED_HIGH;
//LL_GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
//LL_GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
LL_GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
LL_GPIO_Init(GPIOA,&LL_GPIO_InitStruct);
LL_GPIO_ResetOutputPin(GPIOA,LL_GPIO_PIN_0);
}
收藏 评论17 发布时间:2017-9-11 16:32

举报

17个回答
儒墨 回答时间:2017-9-22 10:22:30
终于找到问题了,还是上拉电阻造成的,这个板子用了3933和CC1101,两个共用的SPI,两个芯片片选刚好相反一个低电平一个高电平,并且相位也不通,两个芯片切换使用中会有个类似初始化的选择芯片过程。片选脚不注意设成上拉输出了,结果就变成如果片选是低的时候功耗就不正常了。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 结贴奖励

查看全部评分

xuqiang_kobe 回答时间:2017-9-15 09:25:24
我是昨天刚看到你的帖子,只是简单说了下。首先 stm32l051进入stop模式时我是关闭了FLASH
具体程序见下
void StopMode_Entering(void)//停止模式进入
{
    __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);//电源控制/状态寄存器 (PWR_CSR) 中的 WUF 位 = 0
    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);//当 V CORE 处于范围 2 时,才能进入低功耗睡眠模式
    __HAL_FLASH_SLEEP_POWERDOWN_ENABLE();//在睡眠模式下FLASH为掉电
   
    HAL_PWREx_EnableUltraLowPower();//V REFINT 在低功耗模式下关闭
    HAL_PWREx_EnableFastWakeUp();//PWR_CR 寄存器中的 ULP 位置 1时,必须使能快速唤醒(PWR_CR中的 FWU 位置 1)
   
    __HAL_RCC_HSI_CONFIG(RCC_HSI_DIV4);//请求对 16 MHz HSI 进行 4 分频 ,且HSI16 振荡器开启
    __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_HSI);//选择内部 16 MHz (HSI16) 振荡器作为从停止模式唤醒时钟(如果 HSI16DIVEN=1,则选择 HSI16/4)
    HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);
}

当然我做的是首先进入“低功耗运行状态”,然后再进入“停止状态”。难道你想进入停止状态时还想让程序(即:内核)运行??


我也遇到一个问题:不知道你遇到了吗?
就是:系统的时钟(即:SYSCLK)为4M(用的HSI内部晶振),在低功耗运行(所有的外设都关闭了)时会有30uA的周期性变化(见下解释周期性变化)。SYSCLK再高也会出现这种周期性变化,只不过是变化幅度有所增加。当把SYSCLK降到65.536K时(MSI)就会很稳。

30uA的周期性变化为:变化周期为50秒的时间内变化,它是由805uA一直减小,到773uA时瞬间变大到805uA,这个周期时间为50秒。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

儒墨 回答时间:2017-9-12 14:47:12
MrJiu 发表于 2017-9-12 13:53
用这个SmartRF_Studio配置我也知道。。。对了问你个问题,切换一个通道需要多长实际稳定? ...

你怎么个用法?我读写器是弄收发单独模块所以通道是固定的,当然可以频道可以自由配置。标签采用一发一收,频道不一样,一个数据包大约4ms。收发反正是毫秒级,通道切换具体时间没测过,但是看数据手册,空闲模式->收发模式都才几百微秒,所以应该是不超过毫秒级的。
MrJiu 回答时间:2017-9-11 23:32:48
LL库啊。。。没搞过,现在正要搞CC1101,可否告知一二你的CC1101怎么配置的!!!
儒墨 回答时间:2017-9-12 10:53:20
MrJiu 发表于 2017-9-11 23:32
LL库啊。。。没搞过,现在正要搞CC1101,可否告知一二你的CC1101怎么配置的!!! ...

用SmartRF_Studio配置。设频率、速率都可以,然后会生成代码。
MrJiu 回答时间:2017-9-12 13:53:04
儒墨之争 发表于 2017-9-12 10:53
用SmartRF_Studio配置。设频率、速率都可以,然后会生成代码。

用这个SmartRF_Studio配置我也知道。。。对了问你个问题,切换一个通道需要多长实际稳定?
MrJiu 回答时间:2017-9-12 15:46:34
儒墨之争 发表于 2017-9-12 14:47
你怎么个用法?我读写器是弄收发单独模块所以通道是固定的,当然可以频道可以自由配置。标签采用一发一收 ...

通道固定肯定不行,绝对死翘翘。。。发送和模式切换都是小事情,我问的是从一个频道切换到另外一个频道,比如从433M,切换到434M,需要多长时间稳定。。。。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

儒墨 回答时间:2017-9-12 16:54:03
MrJiu 发表于 2017-9-12 15:46
通道固定肯定不行,绝对死翘翘。。。发送和模式切换都是小事情,我问的是从一个频道切换到另外一个频道, ...

其实是一个意思,换频道你肯定要先进入standby模式,然后在进入Tx/Rx模式,换通道那时间都可以不算,主要还是你模式改变的时间。
五哥1 回答时间:2017-9-13 13:24:31
LL库,大神呀
xuqiang_kobe 回答时间:2017-9-14 17:57:30
最近我也在调试STM32L051。你说的问题没有遇到。但是我有个疑问:在stop模式了,程序已经不运行了。怎么还会执行你所说的“添加的几个while(0)”那??

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

donsbin 回答时间:2017-9-15 09:41:33
MrJiu 发表于 2017-9-12 15:46
通道固定肯定不行,绝对死翘翘。。。发送和模式切换都是小事情,我问的是从一个频道切换到另外一个频道, ...

应用中只有在当前信道通信不稳定的时候才会去跳频。我以前应用就是固定的,030应用也就3-4uA左右

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

MrJiu 回答时间:2017-9-15 10:27:17
donsbin 发表于 2017-9-15 09:41
应用中只有在当前信道通信不稳定的时候才会去跳频。我以前应用就是固定的,030应用也就3-4uA左右 ...

我就问一下,那你做的时候,切换一个通道需要多长时间稳定呢?
儒墨 回答时间:2017-9-18 14:53:33
xuqiang_kobe 发表于 2017-9-14 17:57
最近我也在调试STM32L051。你说的问题没有遇到。但是我有个疑问:在stop模式了,程序已经不运行了。怎么还 ...

进stop模式之前,比较玄幻,这几天太忙了,准备20号之后,重新调一下低功耗,一个一个外设加看到底是什么个情况。
zero99 回答时间:2017-9-18 16:03:59
儒墨之争 发表于 2017-9-18 14:53
进stop模式之前,比较玄幻,这几天太忙了,准备20号之后,重新调一下低功耗,一个一个外设加看到底是什么 ...

坐等楼主分享结果
donsbin 回答时间:2017-9-18 20:18:34
MrJiu 发表于 2017-9-15 10:27
我就问一下,那你做的时候,切换一个通道需要多长时间稳定呢?

我很想知道应用中为什么要去切换通道。
这种小数据短时通信可以通过退避和重发去解决,信道的跳转还需要调整带宽和频偏,并且设备间还需要去切换握手,我觉得很麻烦。
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版