亲爱的对话框,我正在使用自定义DA14580应用板,并有四个内置的四个样本。所有工作都与J-Link调试器正常工作。一块板成功运行了修改后的接近Reporter应用程序,非常感谢您,并且能够从SPI Flash自动启动。它提供了相同的输出,因为当未使用32kHz晶体振荡器时,在专业开发套件上的WLCSP模块上运行应用程序时,其他三个板具有相同的行为,在开始调试后立即停止运行。16MHz振荡器在arch_main.c中调用函数RWIP_INIT(错误)时停止。我尝试改变配置以使用RCX20而不是XTal32,但这不是问题的源头。我无法看到应该影响DA14580操作的四个板之间的构建级别的任何区别。您是否有任何建议可能导致固件从Rwip_init()中停止的内容?
提前感谢您可以给出的任何信息。
亲爱的HUWJONES,当调试器未启动时,电路板是否正常工作?使用调试器将与睡眠模式冲突,因为DA14580中的大多数块断电以保存电源,因此调试器无法再与DA14580通信。(也看到这个论坛主题:http://support.dialog-semicondiondiondum/have-close-smartsnippets-get-fir ...)。最好的问候,RVA(对话)
亲爱的RVA,我没有将任何代码编程到OTP中。在调用Rwip_init()之后停止运行的三个板尚未与外部SPI闪存一起使用,因此我没有尝试运行它们独立。我将尝试加载程序并在不运行的情况下停止调试。第四板 - 按预期工作 - 可以从SPI Flash引导,但我已经暂时禁用了这个。所有板都与10MHz SW的J-Link沟通没有任何问题,但奇怪的是为什么一个DA14580应该运行应用程序,只需在调试时在Arch_Main.cn中的同一点站立。我希望对话框可能会暗示某些原因(寄存器设置,标头标志,配置参数等)为什么RWIP_INIT()可能导致振荡来停止 - 大概通过激活睡眠模式?然后,我可以尝试识别工作DA14580和其他三个之间的任何区别。
欣赏你的意见。最好的祝愿
HUW.
亲爱的RVA,我经过更多调查后有更新。操作的差异似乎是由于DA14580的内部时钟的问题,但我无法追踪原因。在da14580_config中更改cfg_lp_clk.h未将clk_32k_reg设置为0x00AA的预期值。当执行select_lp_clk()时,它似乎只是设置xtal32k_enable bit和clear rc32k_enable。如果我在init_pwr_and_clk_ble()之后,我明确强制main_func()中clk_32k_reg的值,我会在寄存器中获得预期值,但如果定义了cfg_lut_patch,则锁定三个芯片仍然锁定。当此参数未定义时,RWIP_INIT()在rwip_init()中没有锁定,但三个板仍然无法正常工作 - 没有pwm0输出,没有发出BLE广告数据包。当在第四板上运行相同的代码时,BLE广告工作按预期工作,并获得PWM0输出。我已经在工作板和非功能性第一500000FE中检查了寄存器,并且我看到的唯一差异在Bandgap_reg(工作= 0x2a69,非操作= 0x2b20)中。没有32kHz晶体适合任何板,并且在DA14580电路部分之间不应存在任何构建差异。你有什么建议吗 ? What might be the clock link between PWM0 and the BLE core ?
提前致谢
HUW.
亲爱的RVA,庆幸地排序......功能性和特色运营板之间存在构建问题。这些板在GND星点处有一个糟糕的关节,所以RFIOM被留下了浮动,这在RWIP_INIT()上产生了神秘的锁定。PWM0输出问题实际上是由于三个板中的一个不相关的构建问题,所以我在那里误入歧途。所有四个板现在都表现得相同并按预期发出BLE广告数据包。这些是我们使用DA14580的第一个自定义板,所以有一些硬件出牙问题要解决。谢谢,以任何对话的支持率。
亲爱的Huwjones。很高兴听到你的问题。非常感谢您分享您的反馈!最好的问候,RVA(对话)