大家好,
我使用Dialog的基础DA14583开发套件与触摸键I2C基于电容式接近传感器。
我的主要应用是感测接近的变化(即,触摸检测),并在此基础上通过共享更新的通告分组几个数据字节,该广告包由其他装置收集。
该传感器具有下文提到的特性
- 它有一个额外的数据中断引脚除了上传感器侧理想地保持高的基本I2C通信引脚。
- 传感器拉动数据中断引脚LOW每当数据已准备好,并即将在相应的I2C销到MCU发送。
我已连接的传感器的这个数据中断引脚,其被配置每当这个引脚变低,得到一个中断我的MCU GPIO引脚。
我已经以这样的方式,每当有一个proxomity变化(即,触摸检测)传感器将拉动数据中断引脚LOW,然后MCU可启动读操作中编程的传感器。此外,我已经编程在低功率模式中的传感器,使得其消耗更少的功率。
在人运动检测我的应用程序数据的中断引脚将中断MCU和基于读取传感器的值,我会在广告数据包更新数据。
这种逻辑正常工作在Active模式,但是我的设备是电池供电的,我想实现扩展的休眠模式在此设备。
对于睡眠模式我已经refered“ble_app_sleep_mode”和“proxy_reporter”示例代码的和作出相应的代码修改
- 在user_config.h文件
app_default_sleep_mode = ARCH_EXT_SLEEP_ON
- 对于唤醒
arch_disable_sleep();如果(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。
- 使用数据中断引脚我唤醒该设备,然后检查传感器数据并进行更新的广告数据包的各自的操作。
- 在此之后我在睡眠模式下发送设备再次等待下一次中断。
现在,当我incorparate睡眠模式,我不能够得到从设备应有的反应,整个逻辑失败。在此我不能够得到适当的interuupts或正确的数据
其结果是我也尝试数低于唤醒逻辑提到的变化
arch_disable_sleep();如果(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,也就是说,如果我得到succesive 4〜5中断,每隔30秒会睡模式正常工作。
请帮我这个最早
感谢致敬
嗨Utkarash,
是的,睡眠模式对I2C通信的效果。当该装置处于任何的睡眠模式,所有的外围结构域(SPI。I2C,UART等)被断电。这意味着,当该装置处于延长休眠模式中,不可能有任何I2C活性。此外,请记住,如果在睡眠模式下配置的设备,那么它会进入广告和连接间隔之间休眠模式。
能否请你告诉我们,如果有使用DA14583的具体原因是什么?你有什么具体的要求?
如果你开始一个新的设计/工程,我们强烈建议先从DA14531和DA14585 / 586的产品和我们的最新SDK6.0.14雷电竞官网登录,因为它是更加提高。我们有很多的代码示例和改进的文档,以及还有软件路线图的支持。Ť这里是DA14580产品系列和SDK5没有软件路线图的支持。
请检查DA14531:
//www.wsdof.com/雷电竞官网登录products/connectivity/bluetooth-low-energy/products/da14531
我们也有一个DA14531模块,即DA14531 SmartBond TINY™模块!这是一个非常小的尺寸和极低功耗。按照下面的链接,找到数据表,对模块文档和硬件络:
//www.wsdof.com/雷电竞官网登录products/bluetooth-module-da14531-smartbond-tiny
还有参考设计,你会帮助你减少发展阶段,因为你不需要花那么多时间在开发应用程序代码。
CodeLes
无代码可以让你快速上手使用无线物联网应用与一组AT命令的。雷竞技安卓下载无代码AT命令平台允许通过本地UART连接的装置,以及经由BLE远程设备控制。您可以创建的概念简单的演示/应用/证明没有任何代码开发或建造雷竞技安卓下载你在上面自己的应用程序!
//www.wsdof.com/雷电竞官网登录products/smartbond-codeless-commands
对话框串行端口服务(DSP)的
的DSPS模拟串行电缆通信。它提供了一种用于RS-232连接,包括通过蓝牙低功耗熟悉的软件流控制逻辑的简单的替代品。该SPS软件分发包括应用程序和配置文件的源代码和支持GAP中央/外设角色。
//www.wsdof.com/雷电竞官网登录products/dialog-serial-port-service-dsps
对于DA14531,你有用于读出一个I2C接口和经由BLE通知发送的值,以对等设备的完整SW的例子。你可以把它作为一个参考!
DA14531-DA14585-586阅读I2C加速度计BLE
谢谢。PM_Dialog
谢谢您的回复和建议,
很抱歉,但由于少数contrains我将无法改变对话框MCU或SDK在这种状态下,
在设备的下一个版本,我会defiently参考,您新的MCU和SDK的建议,
但是我请你,请与SDK和MCU的curennt版本睡眠配置的帮助。
我曾告诉过我snipet为refered睡眠配置,以便你能请他们,让我知道我是否正确的代码?
此外refereing ble_app_sleep_mode例子后,我做的考虑延长休眠模式下保持DA14583限制睡眠配置。
我obsereved的follwing行为。-
一旦我闪的代码和REpower公司就设备是广告和少数分钟后,如果我再次REpower公司它的设备停止广告。
所以,可以请你这个帮助,为什么当初的装置停止广告有什么关于这一点我很想念呢?
最早请帮助
感谢致敬
Utkarash
嗨Utkarash,
你是从SPI Flash或系统-RAM启动?可以请你在调试模式和检查,如果它得到stauck(NMI,WDG,断言等)运行呢?
我想再次强调,当设备处于休眠模式时,它是不可能有任何I2C活动。
谢谢,PM_Dialog
谢谢您的回复和建议,
你是从SPI Flash或系统-RAM启动?- 我使用的SPI闪存启动,我用的构建过程,并使用智能片断的工具,我的文件转储到我的板后生成的hex文件。
可以请你在调试模式和检查,如果它得到stauck(NMI,WDG,断言等)运行呢?- 现在,该代码犯规陷入NMI或WDG和我提到eralier广告的问题得到解决。
我想再次强调,当设备处于休眠模式时,它是不可能有任何I2C活动。- 我完全理解在延长休眠是I2C犯规作品。然而,当我从睡梦中唤醒设备至少再I2C应该工作。另外,在参考该我问,我做了我的睡眠配置是否正确?即,
如前所述,
对于睡眠模式我已经refered“ble_app_sleep_mode”和“proxy_reporter”示例代码的和作出相应的代码修改
- 在user_config.h文件
- 对于唤醒
- 对于激活睡眠
现在,请检查这些语句,让我知道,如果我使用正确的代码在睡眠发送设备和将其唤醒?
等待您的答复。
感谢致敬
Utkarsh
嗨Utkarsh,
这似乎是正确的 - 你想停止广告,并把设备进入永久休眠模式?
什么是你在这个实现测量的功耗是多少?
另外,也请为DA14580睡眠模式教程 - 链接提供如下:
//www.wsdof.com/sites/default/files/training_04_sleep_mode_configurations.pdf
谢谢,PM_Dialog
谢谢您的回复和建议,
你想停止广告,并把设备进入永久休眠模式?- 不,我不想停止广告,也不愿意把设备永久睡眠。请检查下面点提到的understanmd在我的设备要在睡觉去,当它应该醒了吗?
- 我唤醒设备时,有来自传感器更新中断的通告数据包和后5秒再次进入睡眠状态,等待下一个,直到中断从传感器接收。
这就是我需要睡眠来工作,如果你需要关于传感器和我的应用程序,请参考,我最初的职位了解。
什么是你在这个实现测量的功耗是多少?-我已经断开我的传感器和测量仅我在50至150微安(在该范围内的电流变化),这是不理想的我的情况下,我想这768,16不仅超过更多然后50MicroAmps的电流的范围正在逐渐MCU电流MCU。作为连接我的传感器后,它将再次Increase.Also同时测量电流i refered由你提出同样的教程。
另外,也请为DA14580睡眠模式教程 - 链接提供如下: -我已经refered本教程本身并实现了我跟你也分享我的睡眠逻辑。
除了这个,我有一个问题,虽然实施睡觉我通过几年后去了,我发现下面提意见的对话框。
“此外,由于它是DA14583,如果闪存现在已经断电,那么消费将再次增加。
目前,以放置在掉电模式的SPI功能 - ()spi_flash_power_down - 在这种情况下,你将无法使用闪光灯进行交互,除非您指示SPI闪存上电。开始互动与闪光灯之前,您应该调用spi_flash_release_from_power_down()“。
现在,在我的情况还我使用DA14583所以我应该过问呢?
如是,然后,参照此评论我做这些更改我的代码,请检查它是否是正确的?
如果没有,那么应该忽略我的情况对此有何评论?
请在最早的帮助。
感谢和regrads
Utkarash
嗨Utkarsh,
您可以使用 - spi_flash_power_down() - 在DA14583为好,这样就可以闪断电。这将减少在睡眠模式下的电流消耗。然后,当芯片被唤醒,你应该叫-da14583_spi_flash_release() - 从电力解除闪光灯关闭模式。
>>>发送设备进入睡眠模式i呼叫spi_flash_power_down,例如之前,
我没有看到任何工作 - 你所呼叫的正确的API。
>>>虽然唤醒设备最多我再次relaese的spi_power_down模式中,例如,
请尽量使用da14583_spi_flash_release()代替spi_flash_release_from_power_down()。
谢谢,PM_Dialog
谢谢您的回复和建议,
请尽量使用da14583_spi_flash_release()代替spi_flash_release_from_power_down().--谢谢你的建议,我会做出相应的变化。
感谢致敬