嗨,对话框中,
我目前正在做一个项目,使用DA 14580。我的系统的目标很简单:我通过一个到DA14580的SPI链接发送数据(20个字节的数据包)。然后,我使用信标模式发送此数据(将来自SPI的数据读取到广告字符串中),我能够通过我的移动电话的蓝牙扫描仪接收所有这些数据。我为全局代码(从传感器收集数据并将它们发送到SPI flash链接)工作在IAR上,我通过SPI在代码的开始加载蓝牙配置的二进制文件。二进制文件是当我在U vision上构建我的蓝牙程序时创建的(我使用Dialog Semiconductor为信标模式提供的基本程序)。yabo国际娱乐
我的问题是系统在调试模式下正常工作。因此,当我使用IAR启动系统时,BLE模块正确启动并正确发送数据。但是当我尝试在没有调试模式的情况下进行时,它不起作用。我重置系统,因此代码开始从开头运行,但BLE模块不会发送任何数据。
这个系统是这样工作的:
微控制器唤醒,并初始化BLE模块。当微控制器已准备好发送数据时,它将唤醒信号发送到BLE模块,启动其配置。然后微控制器通过SPI闪光灯将数据发送到BLE模块。然后BLE模块通过信标模式发送数据,并在完成时睡眠。
我想知道的是调试模式和自治模式之间的区别是什么?
解决这个问题的任何想法让我知道。
此致,
佛罗伦特
关键词:
设备:
嗨,小马,
这似乎是睡眠模式的问题。作为一个实验,要确认或排除这一点,请禁用DA14580固件中的睡眠,并让我知道这是否有效。
也请告诉我以下信息:
/ mhv.
嗨,对话框中,
经过一些测试,我发现问题有点不同。实际上,我只发送一个数据(确保我把一个LED每次我发送一个+我只接收第一个数据通过BLE扫描仪),然后BLE模块似乎卡住了。
1.我使用延长睡眠时间。
2.是的,调试模式是当我用IAR运行J-Link模块的代码时。
3.我的唤醒机制是一个外部唤醒,微控制器我使用时发送信号(sys_wakeup),当我想发送数据包时,在从微控制器接收信号时,BLE模块存在中断.但是在使用此设备时,它在“调试”中完美地工作,似乎至少有一次没有“调试”模式。
是的,我想说SPI接口抱歉。
问候,
佛罗伦特
嗨,小马,
当您使用调试器时,您真的永远不会睡眠状态(真实的睡眠模式在DA14580中关闭控制器,因此在启用睡眠时不可能调试)。正如您所说,当您自动运行代码时,代码开始执行后,设备将保持令人醒着,这就是为什么在设备睡眠之前看到一个或两个广告的原因。
使用扩展睡眠模式工作需要两件事:
如果有这些帮助,请告诉我。
/ mhv.
嗨,对话框中,
所以如果我理解得很好,在调试中是不可能进入睡眠模式的。这似乎很奇怪,因为当我在调试,我运行在u-处理器上有一个二进制文件输入链接器(在IAR)的代码。所以我并没有真正运行/调试BLE模块,我只是在我的程序开始时加载这个二进制文件,它只使用了一次,通过SPI初始化BLE模块。
如果睡眠模式并不在调试工作,我怎么可能是管理我的智能手机上接收的值BLE扫描仪当我摇板(我有一个加速度计发出一个信号尽管GPIO当它检测到振动,然后我发送一些数据,这GPIO信号醒来BLE模块interuption)在调试模式?
而且,你告诉我使用唤醒定时器,所以这意味着我可以真正控制我用我的U-processor发送数据时,导致摇动不会有效,原因是GPIO信号?
谢谢你的帮助,
此致,
佛罗伦特
嗨,小马,
让我们退一步一点:-)
请详细解释您的调试模式。您是否使用DA14580(J-Link)上的串行推控器,或者您不是,如果是的话,则是调试器附加的吗?
您可以在睡眠模式下使用调试器,但设备不会真正进入睡眠状态(因为这会在控制器关机时解除调试器的连接)。
为了在没有安装调试器的情况下使用睡眠模式,您需要将睡眠时钟配置为匹配您的硬件,如上所述。否则设备不会从睡眠中醒来。
唤醒定时器实际上是设备上的硬件块,允许您在输入GPIO更改状态时从睡眠模式唤醒控制器。有关详细信息,请参阅参考手册(UM-B-051)。一旦您的加速度计切换其中断输出引脚/引脚,这将允许您唤醒DA14580。
/ mhv.
嗨,对话框中,
通过调试模式我的意思是:我在Micro-Processor(ADUCM3029)上使用SWD,并且该微处理器通过SPI链路将一些数据发送到BLE模块。该微处理器还具有作为输入的二进制文件,该文件是BLE模块的配置,并在代码的开始时发送此配置。所以否,DA14580未附加到J-Link模块,我刚刚在微处理器上使用SWD来向BLE模块向数据包发送步骤。
所以每次我想测试我的一个BLE代码,我在u-vision上编译BLE代码,它创建一个二进制文件,然后我通过AIR链接这个ADUCM3029的代码,然后我用SWD调试ADUCM3029。
所以问题是,当我不连接J-link模块到微处理器的其余部分时,DA14580只发送一个数据,并且休眠一次(我用LED调试它)。
所以外部唤醒正在工作,但只有一次。
谢谢,
佛罗伦特
嗨,小马,
谢谢详细的解释。
以下是一些值得关注的事情:
/ mhv.