Sleep Configuration for DA14583

了解更多常见问题解答教程

9 posts / 0 new
最后一篇
utkarash.
离线
最后一次露面:6个月2周前
加入:2019-01-18 06:36
Sleep Configuration for DA14583

大家好,

我正在使用基于DATO14583的DEV套件,其中具有带有触摸键的基于I2C的电容式接近传感器。

我的主要应用是感测接近变化(即,触摸检测到),并根据更新广告数据包的数据字节来进行以下几个数据字节,该广告数据包由另一个设备收集。

该传感器具有以下优惠
- 它具有额外的数据中断引脚,除了传感器侧的基本I2C通信引脚,理想地保持高。
- 只要数据准备就绪并且即将将其发送到MCU的相应I2C引脚即将发送数据,传感器会降低数据中断引脚。

I have connected this Data interrupt pin of sensor to my MCU GPIO pin which is configured to give an interrupt whenever this pin goes LOW.

我已经以这样的方式编程了传感器,即每当有接近变化(即,触摸检测到),传感器将拉低数据中断引脚,然后MCU可以启动读取操作。此外,我还以低功耗模式编程了传感器,使其消耗更少的电源。

在我的应用程序数据中断引脚,人体运动检测将中断MCU并基于读取传感器值,我将在广告数据包中更新数据。

此逻辑在活动模式下正常工作,但是我的设备将是电池供电我想要在此设备中实现扩展的睡眠模式。

对于睡眠模式,我已经引用了“BLE_APP_SLEEP_MODE”和“PROXY_REPORTER”示例代码,并在代码中进行了相应的更改
-In user_config.h file

app_default_sleep_mode = arch_ext_sleep_on.

- 唤醒

ARCH_DISABLE_SLEEP();if(getBits16(sys_stat_reg,per_is_down)){periph_init();}如果(arch_ble_ext_wakeup_get()){ARCH_SET_SLEEP_MODE(APP_DEFAULT_SLEEP_MODE);ARCH_BLE_FORCE_WAKEUP();ARCH_BLE_EXT_WAKEUP_OFF();app_easy_wakeup();}

- 激活睡眠

ARCH_SET_SLEEP_MODE(ARCH_EXT_SLEEP_ON);

对于更长的电池寿命,我已经改变了如下应用程序,
- 首先我执行相应的传感器配置和MCU配置,然后在睡眠模式下发送MCU。
- 使用数据中断引脚I唤醒设备,然后检查传感器数据并执行更新广告分组的相应操作。
- 在此之后,我再次在睡眠模式下发送设备等待下一个中断。

现在,当我进入睡眠模式时,我无法获得设备的正确响应,整个逻辑失败,在那里我无法获得适当的开展或适当的数据
因此,我还尝试了唤醒逻辑的以下更改

ARCH_DISABLE_SLEEP();if(getBits16(sys_stat_reg,per_is_down)){periph_init();}如果(arch_ble_ext_wakeup_get()){ARCH_SET_SLEEP_MODE(APP_DEFAULT_SLEEP_MODE);ARCH_BLE_FORCE_WAKEUP();ARCH_BLE_EXT_WAKEUP_OFF();app_easy_wakeup();} i2c_init();

我的问题是,无论是睡眠AFTECTS I2C数据通信,如果是,我如何解决它?

并且是MCU的最小特定睡眠时间,即如果我每30秒都将成功4到5中断,睡眠模式会正常工作。

Please help me with this at the earliest

感谢和问候

设备:
PM_DIALOG.
离线
最后一次露面:9小时35分钟前
员工
加入:2018-02-08 11:03
嗨utkarash,

嗨utkarash,

Yes, the sleep mode has an effect on the I2C communication. When the device is in any of sleep modes, all the peripheral domains (SPI. I2C, UART etc. ) are powered down. This means that when the device is in extended sleep mode, it is not possible to have any I2C activity. Additionally, keep in mind that if the devices configured in sleep mode, then it will go into sleep mode between advertising and connection intervals.

如果您使用DA14583有具体原因,请您能让我们让我们吗?你有任何特定要求吗?

如果您正在启动新的设计/项目,我们将强烈建议从DA14531或DA14585 / 586产品开始,我们的最新SDK6.0.14亚博电竞菠菜,因为它更加改善。我们有很多代码示例和改进的文档,还有软件路线图支持。T.以下是对DA14580产品系列和SDK5的软件路线图支持。

Please check out DA14531:

https://www.dialog-seminile.com/produ亚博电竞菠菜cts/connectivity/bluetooth-low-energy/products/da14531

我们还有一个DA14531模块,即DA14531 SmartBond Tiny™模块!它具有很小的尺寸,功率非常低。按照下面的链接查找模块的数据表,文档和HW抵消:

https://www.dialog-seminile.com/produ亚博电竞菠菜cts/bluetooth-module-da14531-smartbond-tiny.

还有参考设计,您将帮助您减少开发阶段,因为您不需要花费这么多时间开发您的应用程序代码。

编纂者

无附件允许您快速使用一组AT命令使用无线IOT应用程序。亚博国际官网平台网址Dodeless AT命令平台允许通过BLE控制本地UART连接的设备以​​及远程设备。您可以创建简单的演示/应用程序/概念证明,而无需任何代码开发亚博国际官网平台网址或在顶部构建您自己的应用程序!

https://www.dialog-seminile.com/produ亚博电竞菠菜cts/smartbond-codeless-commands.

对话框串行端口服务(DSP)

DSP模拟串行电缆通信。它为RS-232连接提供了简单的替代品,包括通过蓝牙低能量的熟悉的软件流控制逻辑。SPS软件分发包括应用程序和配置文件源代码并支持间隙中央/外设角色。

https://www.dialog-seminile.com/produ亚博电竞菠菜cts/dialog-serial-port-service-dsps.

对于DA14531,您有一个完成的SW示例,用于读取I2C接口,并通过BLE通知将值发送到对等设备。您可以将其作为参考!

DA14531-DA14585-586读取I2C加速度计BLE

谢谢。PM_DIALOG.

utkarash.
离线
最后一次露面:6个月2周前
加入:2019-01-18 06:36
谢谢你的回复和

谢谢你的回复和suggestions,

对不起,但是由于少量的采用,我将无法在此状态下更改对话框MCU或SDK,

In next version of the device i will defiently refere you suggestions of new MCU and SDK,

但是,我要求您使用Curennt版本的SDK和MCU帮助睡眠配置。

I had shared the code snipet i refered for sleep configurations so can you please check them and let me known whether i am correct?

Also after refereing ble_app_sleep_mode example i made sleep configuration of extended sleep mode keeping DA14583 limitations in mind.

我陈述了Follwing行为。-

一旦我刷新代码并重新推回它,设备是广告,如果我再次重新推回设备,那么设备就停止了广告。

那么你可以帮忙,为什么设备停止广告是有什么我错过的?

Please help at the earliest

感谢致敬

utkarash.

PM_DIALOG.
离线
最后一次露面:9小时35分钟前
员工
加入:2018-02-08 11:03
嗨utkarash,

嗨utkarash,

您是否从SPI Flash或System-RAM启动?您能否在调试模式下运行它,并检查它是否符合stauck(nmi,wdg,断言等)?

我想再次亮点,即当设备处于睡眠模式时,无法具有任何I2C活动。

谢谢,PM_DIALOG.

utkarash.
离线
最后一次露面:6个月2周前
加入:2019-01-18 06:36

谢谢你的回复和suggestions,

您是否从SPI Flash或System-RAM启动?-I am booting using SPI Flash, I use the hex file generated after build process and using smart snippet tool i dump the file into my board.

您能否在调试模式下运行它,并检查它是否符合stauck(nmi,wdg,断言等)?- 现在的代码不会被困在NMI或WDG中,并解决了我提到的广告的问题。

我想再次亮点,即当设备处于睡眠模式时,无法具有任何I2C活动。- 我完全明白,I2C在延长睡眠中没有工作。但是,当我唤醒从睡眠唤醒设备时,I2C应该工作。还要参考这一点,我询问我所做的睡眠配置是否正确?即,

如前所述,

对于睡眠模式,我已经引用了“BLE_APP_SLEEP_MODE”和“PROXY_REPORTER”示例代码,并在代码中进行了相应的更改
-In user_config.h file

app_default_sleep_mode = arch_ext_sleep_on.

- 唤醒

ARCH_DISABLE_SLEEP();if(getBits16(sys_stat_reg,per_is_down)){periph_init();}如果(arch_ble_ext_wakeup_get()){ARCH_SET_SLEEP_MODE(APP_DEFAULT_SLEEP_MODE);ARCH_BLE_FORCE_WAKEUP();ARCH_BLE_EXT_WAKEUP_OFF();app_easy_wakeup();}

- 激活睡眠

ARCH_SET_SLEEP_MODE(ARCH_EXT_SLEEP_ON);

Now Please check these statements and let me know if i am using correct code for sending device in sleep and for waking it up?

等待你的答复。

感谢和问候

utkarsh.

PM_DIALOG.
离线
最后一次露面:9小时35分钟前
员工
加入:2018-02-08 11:03
嗨utkarsh,

嗨utkarsh,

它似乎是正确的 - 你想停止广告并将设备放入永久睡眠模式吗?

使用此实施测量的功耗是多少?

还请检查DA14580的睡眠模式教程 - 链接提供:

https://www.dialog-seminile.com/sites/default/files/training_04_sleep_mode_configurations.pdf.

谢谢,PM_DIALOG.

utkarash.
离线
最后一次露面:6个月2周前
加入:2019-01-18 06:36
谢谢你的回复和

谢谢你的回复和suggestions,

您想停止广告并将设备放入永久睡眠模式吗?- 不,我不想停止广告,也不想把设备放在永久睡眠中。请检查下面的指向GransanMD,我的设备应该睡觉,什么时候应该醒来?

- 当传感器更新广告数据包的中断时,我唤醒了设备,然后再次睡眠并再次睡眠并等待从传感器接收下一个中断。

T.his is how i need the sleep to work, if you need to understand regarding the sensor and my application please refere my initial post.

使用此实施测量的功耗是多少?-我断开连接的传感器nd measured only MCU current which i am getting in the range of 50 to 150 MicroAmps(current varies in this range), which is not ideal for my case i want a current which shoud not exceed more then 50MicroAmps for only MCU . As after connecting my sensor it will again Increase.Also while measuring current i refered the same tutorial suggested by you.

还请检查DA14580的睡眠模式教程 - 链接提供: -我已经推荐了本教程本身并实现了我与您共享的睡眠逻辑。

除此之外,我还有一个问题,在实施睡眠时,我经历了几个帖子,我发现下面通过对话框提到注释。

“另外,由于它是DA14583,如果闪光灯现在断电,则消耗将再次增加。
有一个函数,以便将SPI放在下电模式 - SPI_FLASH_POWER_DOWN() - 并且在这种情况下,除非您指示SPI闪光灯通电,否则您将无法与闪存进行交互。在开始与Flash交互之前,您应该调用SPI_FLASH_RELEASE_FROM_POWER_DOWN()。“

Now in my case also i am using DA14583 so should i bother about this?

If Yes,然后参考此评论我在我的代码中进行了这些变化,请检查它是否正确?

  • 在将设备发送到睡眠模式之前,我调用spi_flash_power_down,例如,
spi_flash_power_down(); arch_set_sleep_mode(ARCH_EXT_SLEEP_ON);
  • And while waking the device up i again relaese the spi_power_down mode, for example,
ARCH_DISABLE_SLEEP();SPI_FLASH_RELEASE_FROM_POWER_DOWN();if(getBits16(sys_stat_reg,per_is_down)){periph_init();}如果(arch_ble_ext_wakeup_get()){ARCH_SET_SLEEP_MODE(APP_DEFAULT_SLEEP_MODE);ARCH_BLE_FORCE_WAKEUP();ARCH_BLE_EXT_WAKEUP_OFF();app_easy_wakeup();}

如果不是,那么应该忽略我的案子中的这个评论?

请尽早帮助。

谢谢并发生

utkarash.

PM_DIALOG.
离线
最后一次露面:9小时35分钟前
员工
加入:2018-02-08 11:03
嗨utkarsh,

嗨utkarsh,

您也可以使用 - SPI_FLASH_POWER_DOWN() - 在DA14583中,因此您可以关闭闪光灯。这将降低睡眠模式下的电流消耗。然后,当芯片唤醒时,您应该调用-da14583_spi_flash_release() - 从下电模式释放闪光灯。

>>>Before sending device into sleep mode i call spi_flash_power_down, for example,

我没有看到任何工作 - 你正在召唤正确的API。

>>>又同时唤醒设备,我再次重新安置SPI_Power_Down模式,例如,

请尝试使用da14583_spi_flash_release()而不是spi_flash_release_from_power_down()。

谢谢,PM_DIALOG.

utkarash.
离线
最后一次露面:6个月2周前
加入:2019-01-18 06:36
谢谢你的回复和

谢谢你的回复和suggestions,

请尝试使用da14583_spi_flash_release()而不是spi_flash_release_from_power_down().--谢谢你的建议,我将提出各自的变化。

感谢致敬