嗨对话框,
我使用无代码AT命令,通过从PC发送AT命令将数据从传感器发送到智能手机。
我面对的问题是,一旦它睡觉,我就无法唤醒它。所以,当我运行调试会话时,如果串行监视器(如TERATERM)尚未打开,则芯片睡眠并停止响应任何内容。所以当我运行调试会话时,如果串行监视器打开,并且我很快发送命令,那么设备开始响应,然后如果我发送+睡眠= 1,那么再次睡觉再次睡觉.我尝试发送@,at和大多数其他角色。
我正在使用Murata型ZF设计套件。
我想帮助调试通过代码的无代码AT。
有关代码结构的详细信息,以及关于代码的任何其他信息将非常有用。
你能帮帮我吗?
提前致谢。
设备:
嗨克里斯南纳格,
我无法复制你的问题,你能把你正在做的程序弄干净吗?我已经测试过了,我可以把芯片从睡眠中唤醒。当您热连接调试器时,您的设备无法唤醒?你能先看一下无代码教程吗?
https://support.dialog-semicondiondiondimicondum/resource/codeless-tutorial-html.
谢谢,PM_DIALOG.
感谢您的回复。
我已经看了教程,我现在做的正是他们所说的,通过使用smartsnippets,加载固件和下载到板。它仍然不起作用。所以我在板上下载了固件,然后打开一个串行显示器,并发送AT, @任何东西都没有响应。
要查看睡眠是问题,我已经在user_codeless.c中提交了prepare_sleep()函数中的Arch_set_extended_sleep()。因此,只要调用此函数,它实际上不会睡觉。然后我加载代码并启动串行监视器,一切都正常工作。所以它不是从睡眠中唤醒导致问题的睡眠。
UART正在运行正常,因为当它没有睡觉时它正在运作良好。然后它正在通过UART收到@ @没有响应?我无法理解正在发生的事情。
主板为muRata P2ML3656,子板为P2ML3599。我使用的无代码代码版本是Codeless20170609_beta1。这是为DA14580编程。
我注意到的另一件事是,当无附庸处工作时,即AT命令是响应的,引脚GPIO 0_4和GPIO 0_5的电压变化,表示传输。当我放置+睡眠= 1时,当发送字符时,这些电压不再不同。因此,如果在UART2上接收的信号,则可能会使这些引脚是UART1,并且中断将发生在UART2上的信号,并且UART2引脚被错误地配置?
如果是,你能告诉我如何正确配置它,因为在user_peri_setup .c中,没有配置UART引脚,所以这些定义在哪里?
我附上了十六进制文件。
谢谢
我注意到了一件事。
当我加载固件并在10秒内发送UART字符时,AT命令会得到响应。所以我监控权力配置文件使用智能片段电力分析器,奇怪的是,当芯片是活跃的,应对在命令时,平均180微安培电流,当我把+睡眠= 1,那么当前消费增加到250微安培。这是怎么发生的?
嗨克里斯南纳格,
你能澄清一下你是否在使用无代码项目的默认固件吗?你到底修改了没有?正如我在我之前的帖子中提到的,我能够唤醒芯片发送任何字符通过UART和跟随一步一步的无代码教程。当你通过UART发送' @ '时,你的代码有什么行为?你是否尝试在调试模式下运行它,以便检查它是否命中了WDOG或NMI ?关于第二个线程,您不应该在睡觉时增加功耗。我无法复制你的问题,所以你可以把你正在执行的程序清理干净吗?
谢谢,PM_DIALOG.
你好,
下面是我正在使用的无代码的zip文件夹的链接。
https://drive.google.com/open?id=1w33bttrb1eopvqxdgoibp-7japdyltwi.
这是一个keil项目,所以我在keil环境中打开这个,并构建目标。然后,我采取的十六进制文件,已构建,并下载这个固件到板使用智能片段准确地告诉在教程。但是在教程中有一个硬件设置部分,它说在proKit或基本套件中做什么,但我的是murata typeZF套件和跳线配置完全不同,因此我没有改变任何东西,就硬件而言。我一下载固件到芯片上,就打开Teraterm,用波特率和教程中提到的其他设置设置串口,然后开始发送字符。这是我遵循的程序。
当你试图复制这个问题时,你是否用我提到的主板编号在murata zf试剂盒上尝试了它?我的硬件配置有问题吗?
此外,当我告诉GPIO引脚P_04和P_05时,在给出睡眠命令时没有显示信号。所以,人物甚至没有去看我想的板。所以,当UART功能本身不起作用时,我怀疑的电路板没有收到@字符。所以在那里,如果任何必须改变,我也对UART配置表示怀疑。
我在调试模式下尝试过,但我是一个初学者,我不确定如何检查WDOG或NMI是否命中,或者它们表明的是什么,如果您对此有任何参考,我会尝试查阅,请允许我知道。
谢谢
嗨克里斯南纳格,
我从你发布的链接下载了你的项目,我使用了murata板,但我无法复制你的问题。此外,我没有做任何硬件修改或跳线配置在板。你能解释一下你的问题是什么吗?您是否能够从终端发送任何其他AT命令而不能醒来?为了获得关于调试过程的知识,请查看我们的门户页面上的教程8:调试方法。
https://support.dialog-seminile.com/resource/tutorial-8-debugging-methodsv11.
谢谢,PM_DIALOG.
你好,
非常感谢调试链接。我会试着照着做,试着找出问题所在。
我很惊讶你不能复制这个问题。我所遵循的程序和我在答复中所提到的一样。一旦它进入睡眠,就好像UART关闭了。在那之后就什么都没用了。没有字符甚至通过UART,因为GPIO p04和p05引脚显示睡眠后电压没有变化。
我正在附上我的设置照片。请您确认一些跳线配置是否有所不同。
嗨克里斯南纳格,
请注意,当您使用无附件项目时,设备能够与从UART接收的每个字符唤醒,不仅与'@'相同。在芯片进入睡眠之前,如果您的所有AT命令才能正确地澄清您吗?您自己的问题是设备进入睡眠模式时?你怎么知道在那之后没有什么工作?您是否使用Power Profiler以检查580是否是广告的或者不是或者仍在睡眠模式中?你期望看到什么?我确认了跳线配置,我与你的跳线相同。
谢谢,PM_DIALOG.
是的,在芯片进入睡眠之前,所有命令都正常工作。我没有检查I2CWRITE或读取命令,因为我现在没有传感器。
除此之外,一切都正常工作。当它睡觉时,如果我通过UART发送角色,它就没有给出响应。当它醒来时,我希望在我的串行监视器上看到一些东西。
我没有使用功率分析器来查看它是否还在做广告,因为我不知道功率分析器里发生了什么。正如我所提到的,一旦它进入睡眠状态,当前的消耗由于某种原因而增加,所以我不理解功率分析器中发生了什么。但是,我能够看到BLE android应用程序中的无代码广告,当它是活跃的,但当它进入睡眠,这停止检测无代码,这意味着它已经停止广告。即使在UART中发送任何字符,问题也是一样的。
嗨克里斯南纳格,
我无法复制你的问题。您能从SDK的默认示例中下载固件吗?你面对同样的问题吗?例如,如果您运行BLE_APP_SLEEPMODE项目,当设备睡眠时,当前消耗仍然增加?此外,我建议您使用Smart Scippet的电源分布程序,以检查设备是否广告或不知道该设备在广告和连接间隔之间睡眠。
谢谢,PM_DIALOG.