SUOTA和睡眠

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
12个职位/ 0个新职位
最后发表
匿名(未经验证)
SUOTA和睡眠

我们正试图将Suota添加到我们的固件中,但我们正在遇到问题。当我们为我们的个人资料添加课时时,我们无法睡觉,我们达到1.2毫安。但是,当我们在我们的固件中删除Suota配置文件时,设备可以达到正常睡眠,消耗降至30UA。

在AN-B-10文件中,第10步说进入睡眠模式。这是否意味着如果我们在我们的固件中使用SUOTA配置文件,那么它就不能进入睡眠状态?

感谢致敬

关键词:
设备:
MT_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-06-08 11:34
嗨瓦拉希尔,

嗨瓦拉希尔,

你的意思是,当你加入Suota个人资料的SW时,你会得到更高的功耗?不是在过程中,或之后,只是在添加拟议代码时?1.2MA对于580来说,即使它没有睡眠模式也是如此。关于睡眠,您可以在启用Suota时与睡眠一起运行,即使在Suota期间,设备睡眠并唤醒(我无法找到关于睡眠的AN-B-10中提到的内容)。

由于MT_dialog

Mutahir(未经验证)

是的,我只需通过添加upota配置文件i.e,包括“文件user_profiles_config.h”中的“#include”spotar.h“”。

在AN-B-10第12页8.1节中列出了逐步的过程。在步骤10中,它说在user_config.h中关闭睡眠模式。

MT_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-06-08 11:34
嗨瓦拉希尔,

嗨瓦拉希尔,

我的错,我检查了旧版本的文件,但新版本的文件暗示禁用睡眠的事实仍然是错误的,所以谢谢你的指示,我告诉了作者这个误导性的评论。关于你的问题,我不能够看到只要涉及SUOTA给水设备的当前消费的增加,应该有一个泄漏一些销但我不能涉及SUOTA概要文件在这方面,因为它配置针并设置SPI模块时间读或写数据时从flash或I2C。你能复制583号的近距离记者建筑吗?

由于MT_dialog

Mutahir(未经验证)

我们再检查一遍,我们要睡觉了,但是我们仍然消耗了过剩的电流。

在文件user_peri_setup .c中有一个名为set_pad_functions的函数。在这个函数中有一个如下所示的GPIO配置序列

#如果(BLE_SPOTA_RECEIVER)
gpio_configurepin(spi_en_gpio_port,spi_en_gpio_pin,输出,pid_spi_en,true);
gpio_configurepin(spi_clk_gpio_port,spi_clk_gpio_pin,输出,pid_spi_clk,false);
GPIO_ConfigurePin(SPI_DO_GPIO_PORT, SPI_DO_GPIO_PIN, OUTPUT, PID_SPI_DO, false);
GPIO_ConfigurePin(SPI_DI_GPIO_PORT, SPI_DI_GPIO_PIN, INPUT, PID_SPI_DI, false);

//举例I2C EEPROM的GPIO配置。
//GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_2, INPUT, PID_I2C_SCL, false);
// gpio_configurepin(gpio_port_0,gpio_pin_3,输入,pid_i2c_sda,false);
#万一

这些配置的目的是什么?我们可以通过移除这些配置来减少电流。我们需要在醒来后调用这个序列吗?

MT_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-06-08 11:34
嗨瓦拉希尔,

嗨瓦拉希尔,

这些引脚在那里是为了在每次唤醒后引脚被初始化,是的,你需要在唤醒后重新初始化你的引脚(这些配置命令是为了配置连接到SPI接口的引脚),但是SUOTA配置文件在开始与外部内存的交互之前,它总是通过配置文件配置引脚,所以我认为你会很好地提交这些配置,尽管我没有看到任何泄漏的那些引脚在我的设置。

由于MT_dialog

Mutahir(未经验证)

所以好的,如果我删除下面的线条,那么SPI将不会初始化,但是您表示在更新之前的SUOTA配置文件执行所需的SPI初始化。这种理解是否正确
gpio_configurepin(spi_en_gpio_port,spi_en_gpio_pin,输出,pid_spi_en,true);
gpio_configurepin(spi_clk_gpio_port,spi_clk_gpio_pin,输出,pid_spi_clk,false);
GPIO_ConfigurePin(SPI_DO_GPIO_PORT, SPI_DO_GPIO_PIN, OUTPUT, PID_SPI_DO, false);
GPIO_ConfigurePin(SPI_DI_GPIO_PORT, SPI_DI_GPIO_PIN, INPUT, PID_SPI_DI, false);

如果我启动了Suota Transfer,那么SPI被初始化,并且将发生成功转移,但在设备重新启动之后,SPI将始终初始化,或者它将转到其重置状态。即,在睡眠前我需要补充的SPI引脚是否有序列,以便重新启动后没有泄漏。

MT_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-06-08 11:34
嗨瓦拉希尔,

嗨瓦拉希尔,

是的,您可以检查app_spotar_spi_config()中的SUOTA配置文件,如果您处于开发模式,则SPI的引脚是保留的,并已配置。在设备重新启动后,它将加载你已经下载的新应用程序,你的pin状态将是你在新fw中的user_peri_setup()函数中的状态。对于clean/deconfigure过程,没有特定的过程,引脚的默认状态是INPUT_PULLDOWN。

由于MT_dialog

Mutahir(未经验证)

所以我们删除了SPI的初始化,我们观察了一些奇怪的东西。当我们通过SmartSnippet加载六角文件时,即保持SPI闪光灯可引导,我们的睡眠模式下的功耗为30-40UA,根据我们的期望。但是,当我们使用辅助引导加载程序创建双重图像时(SDK的实用程序中提供的那个),然后在使用SmartSnippet并保持SPI Flash不可启动时,我们的功耗进入300-400A。

我们检查了我们设备要求的2_3、2_4、2_0、2_9端口的测试点信号都是低的。为了达到30-40 uA,我们仍然无法确定要取消哪个GPIO端口/引脚。

MT_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-06-08 11:34
嗨瓦拉希尔,

嗨瓦拉希尔,

我无法解释这可能导致什么行为,引导装载程序只是为了运行加载一个现有的两个图像,图像本身运行在580年之后,你有试过烧的multipart.bin接近记者弗兰克-威廉姆斯为了检查如果你得到相同的功耗?

由于MT_dialog

Mutahir(未经验证)

我们仍在试图调试为什么我们的电力消耗与启动加载程序高。除了GPIO引脚配置之外,在引导加载程序中,在控制到固件的控制之前,将设置以下寄存器。你能告诉我们这些值设置了吗?我们是否需要在我们的固件初始化中取消配置它们或重置它们

SetWord16 (WATCHDOG_REG 0 xc8);// 200 * 10.24ms初始化激活时间!
setword16(reset_freeeze_reg,frz_wdog);//启动wdog.

如果(*(volatile unsigned*)0x20000000 & 0x20000000)

tmp = GetWord16 (SYS_CTRL_REG);
TMP&=〜0x0003;
setword16(sys_ctrl_reg,tmp);
sw_reset ();

tmp = GetWord16 (SYS_CTRL_REG);
// tmp&=〜0x0003;
TMP | = 0x8000;
setword16(sys_ctrl_reg,tmp);

MT_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-06-08 11:34
嗨瓦拉希尔,

嗨瓦拉希尔,

你从secondary_bootloader fw上粘贴的代码,它只是将看门狗设置为一个倒计时值,然后启用它,然后启动刚刚从外部设备加载到syram的应用程序。我不认为它们与高能耗有关。也许额外的功耗来自于flash,您是否尝试从您的fw调用spi_flash_power_down(),也许您正在代码的某个地方使用flash。还有,你有没有试过让近距离记者检查你的能耗是否相同?

由于MT_dialog