嗨对话框,
我正在使用无代码AT命令,通过从PC发送AT命令,将数据从传感器发送到智能手机。
我面对的问题是,一旦它睡觉,我就无法唤醒它。所以,当我运行调试会话时,如果串行监视器(如TERATERM)尚未打开,则芯片睡眠并停止响应任何内容。所以当我运行调试会话时,如果串行监视器打开,并且我很快发送命令,那么设备开始响应,然后如果我发送+睡眠= 1,那么再次睡觉再次睡觉.我尝试发送@,at和大多数其他角色。
我正在使用Murata型ZF设计套件。
我想帮助调试通过通过代码无代码AT的代码。
有关代码结构的详细信息,以及关于代码的任何其他信息将非常有用。
你能帮帮我吗?
提前致谢。
设备:
嗨克里斯南纳格,
我无法复制你的问题,你能把你正在做的程序弄干净吗?我已经测试过了,我能够从睡眠中唤醒芯片。当您热连接调试器时,设备无法唤醒?你能先看看无代码教程吗?
https://support.dialog-semicondiondiondimicondum/resource/codeless-tutorial-html.
谢谢,PM_DIALOG.
感谢您的回复。
我已经看了教程,我现在正在做的正是他们说的,通过使用智能片段,加载固件和下载到板。它仍然不起作用。所以我把固件下载到板上,然后打开串口显示器,发送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_peripher_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 typeZF套件上尝试过,带有我提到的主板编号?是我的硬件配置有问题吗?
此外,当我告诉GPIO引脚P_04和P_05时,在给出睡眠命令时没有显示信号。所以,人物甚至没有去看我想的板。所以,当UART功能本身不起作用时,我怀疑的电路板没有收到@字符。所以在那里,如果任何必须改变,我也对UART配置表示怀疑。
我在调试模式下尝试过,但我是一个初学者,我不确定如何检查WDOG或NMI是否命中,或者它们表明的是什么,如果您对此有任何参考,我会尝试查阅,请允许我知道。
谢谢
嗨克里斯南纳格,
我从你发布的链接下载了你的项目,我使用了村田板,但我不能复制你的问题。另外,我没有在电路板上做任何硬件修改或跳线配置。你能解释一下你的问题是什么吗?您是否能够从终端发送任何其他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.