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

我们正在尝试将SUOTA添加到我们的固件中,但是我们遇到了一个问题。当我们将SUOTA添加到我们的个人资料中,我们无法入睡,我们得到了大约1.2 mA。然而,当我们在固件中删除SUOTA配置文件时,设备可以进入正常睡眠状态,消耗下降到30uA。

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

感谢和问候

设备:
MT_dialog
离线
最后看到:4个月6天前
工作人员
加入:2015-06-08 34
你好,穆

你好,穆

你的意思是当你只添加SUOTA配置文件的sw你会得到更高的功耗?不是在过程中,还是之后,只是在添加SUOTA代码时?即使580处于无睡眠状态,1.2mA也很贵了。关于睡眠,你可以操作睡眠时,你有SUOTA启用,即使在SUOTA设备睡觉和醒来(我无法找到你在AN-B-10提到的睡眠)。

由于MT_dialog

穆(未验证)

是的,我得到增加只是通过添加SUOTA配置文件,即包括“#包括”spotar.h“”在文件user_profiles_config.h

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

MT_dialog
离线
最后看到:4个月6天前
工作人员
加入:2015-06-08 34
你好,穆

你好,穆

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

由于MT_dialog

穆(未验证)

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

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

#如果(BLE_SPOTA_RECEIVER)
GPIO_ConfigurePin(SPI_EN_GPIO_PORT, SPI_EN_GPIO_PIN, OUTPUT, PID_SPI_EN, true);
GPIO_ConfigurePin(SPI_CLK_GPIO_PORT, SPI_CLK_GPIO_PIN, OUTPUT, 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, INPUT, PID_I2C_SDA, false);
# endif

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

MT_dialog
离线
最后看到:4个月6天前
工作人员
加入:2015-06-08 34
你好,穆

你好,穆

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

由于MT_dialog

穆(未验证)

好的,如果我删除下面的行,那么SPI将不会初始化,但您说过SUOTA配置文件在更新之前会执行所需的SPI初始化。这种理解正确吗?
GPIO_ConfigurePin(SPI_EN_GPIO_PORT, SPI_EN_GPIO_PIN, OUTPUT, PID_SPI_EN, true);
GPIO_ConfigurePin(SPI_CLK_GPIO_PORT, SPI_CLK_GPIO_PIN, OUTPUT, 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传输,那么SPI将被初始化,并将发生成功的传输,但是在设备重新启动后,SPI将保持初始化状态还是将进入重置状态。也就是说,有一个序列来清洁/解构SPI引脚,我需要在睡觉之前添加,以便重新启动后没有泄漏。

MT_dialog
离线
最后看到:4个月6天前
工作人员
加入:2015-06-08 34
你好,穆

你好,穆

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

由于MT_dialog

穆(未验证)

因此,我们删除了SPI的初始化,并观察到一些奇怪的事情。当我们通过SmartSnippet加载十六进制文件时,即保持SPI Flash可启动,我们在睡眠模式下的功耗为30-40uA,正如我们的期望。然而,当我们使用辅助引导加载程序(SDK实用程序中提供的)创建一个双重映像,然后使用SmartSnippet并保持SPI Flash不可引导时,我们的功耗为300-400uA。

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

MT_dialog
离线
最后看到:4个月6天前
工作人员
加入:2015-06-08 34
你好,穆

你好,穆

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

由于MT_dialog

穆(未验证)

我们仍在试图调试为什么引导加载程序的功耗很高。在引导加载程序中,除了GPIO引脚配置之外,在控制移交给固件之前,设置了以下寄存器。你能告诉我们这些值是多少吗?我们需要取消他们或重置他们在我们的固件初始化

SetWord16 (WATCHDOG_REG 0 xc8);// 200 * 10.24ms初始化激活时间!
SetWord16 (RESET_FREEZE_REG FRZ_WDOG);/ /开始WDOG

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

tmp = GetWord16 (SYS_CTRL_REG);
tmp = ~ 0 x0003;
SetWord16 (SYS_CTRL_REG tmp);
sw_reset ();

tmp = GetWord16 (SYS_CTRL_REG);
/ / tmp = ~ 0 x0003;
tmp | = 0 x8000;
SetWord16 (SYS_CTRL_REG tmp);

MT_dialog
离线
最后看到:4个月6天前
工作人员
加入:2015-06-08 34
你好,穆

你好,穆

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

由于MT_dialog