亲爱的对话框,
在我最近的几批板上调优水晶后,我发现我在lld_sleep_compensate_func()中接收到ASSERT_WARNING
//如果此断言命中,则LP ISR持续时间超过该时间
//已通过LP_ISR_TIME_XTAL32_CYCLES和LP_ISR_TIME_USEC保留。
if(sleep_lp_cycles &&(sleep_lp_cycles
我的水晶修剪设置为0xFF,最大值/最低频率。当我将该值返回到默认的0x80时,警告消失了,但是我的BLE频率错误在那个点更大。我的调谐过程是用频谱分析仪检查BLE频率偏移误差,并相应地调整晶体,使误差最小化。
你有什么建议吗?这是硬件设计的问题吗?我应该调查购买带有额外负载电容的晶体吗?我使用32MHz, 6pF晶体+/-10ppm公差和老化(部分编号。XRCGB32M000F1H00R0)。
谢谢,
麦克风
设备:
嗨mbwjr12,
感谢您的在线问题,以及您对我们的BLE解决方案的兴趣。
我建议首先检查AN-B-075: DA14531硬件指南应用笔记,提供了基于DA14531 SOC的最小参考原理图,电路解释和设计指南。雷竞技安卓下载
关于晶体振荡器规格,请参阅第3.2.2节和表10。
晶体微调准则见3.2.2.1节。
谢谢,PM_DIALOG.
你好对话框,
是的,我在设计中提到了Crystal Specs和硬件设计指南。我用完全相同的水晶作为devkit。我遵循了布局指南,并从水晶垫下方移除了平面。一般来说,我的设计正如预期的那样。
我有几个问题:
谢谢,
麦克风
嗨mbwjr12,
为延迟道歉。让我检查一下,我会回复你。
谢谢,PM_DIALOG.
嗨mbwjr12,
关于具体警告,这意味着系统花费太多时间睡眠,无法按时醒来,因此SDK警告您。可能它可能与水晶修剪有关,所以我想退房。
如果DA14531是活动的(没有BLE核心活动),并且中断被禁用,并且BLE核心唤醒的时间也会发生此断言。为此,在LP_Handler执行的某个时刻,由于中断被禁用,ISR会延迟执行(在某个时刻,中断被启用,但处理程序没有按时执行)。换句话说,这意味着设备的睡眠时间比定义的时间长,断言将发生。
我在一些问题下面才能理解更好的问题:
谢谢,PM_DIALOG.
你好,
1.我使用RCX,没有使用外部LP晶体。
2.我没有。我对SDK做了两个修改:
1.为了方便地检索BLE地址,我扩展了结构体bd_addr app_random_addr
2.如果不存在,我修改了Arch_System以从Config标志而不是OTP检索默认的Cryst Carrim值,如下所示:
对于QFN芯片,CFG_DEFAULT_XTAL32M_TRIM_VALUE默认值为0x80,这不会导致警告,但在0xFF时会导致警告。
3.我不相信我曾经禁用过中断。我检查了我的代码,并没有发现通过对话API调用的直接或间接的方式,我禁用了它们。
4.我检查了peripher_init。它只调用GPIO_ConfigurePin(lights_init()也只调用GPIO_ConfigurePin())
我正在使用自定义代码。固件处于延迟测试版或发布候选阶段,只有最近的批次批次,即晶体调整经历了此警告。如果我有时间,我还没有尝试运行示例代码我会调查这个问题。
如果我不能轻易解决这个问题,似乎只要我的最终调谐值保持在大约75kHz内的初始频率偏移误差,而无需修剪晶体即可导致此警告即可,我应该良好的生产。MAX BLE错误按照规格为150kHz,这应该给我充足的余量,+/- 10ppm初始,+/- 10ppm温度,以及晶体上的一些老化容差。如果这是大约30ppm的总数最坏情况,则可以在产品的预期寿命中获得〜75khz的额外误差。
谢谢,
麦克风
嗨,迈克,
请参阅用户指南第24.1.4节-链接如下:
http://lpccs-docs.dialog-semiconductor.com/UM-B-083/tools/RfMaster.html
然后请使用Spectrum Analyzer,以便您可以决定哪个是最佳修剪值。
之后,您可以修改arch_system.c文件中的默认值。请检查DEFAULT_XTAL32M_TRIM_VALUE_QFN和DEFAULT_XTAL32M_TRIM_VALUE_WLCSP宏,它们持有默认的微调值。
与此同时,我将再次检查它——正如我在前面的评论中提到的,这个警告的可能原因是系统花费了太多的睡眠时间,无法按时醒来。
谢谢,PM_DIALOG.
我在为其他遇到同样问题的人更新。我诊断是晶体坏了:最新的生产测试批次实际上不像之前的批次使用XRCGB32M000F1H00R0,而且替换了一些特性未知的替代晶体。
使用校准过的频率计数器,我能够显示出它在25摄氏度时的误差为52ppm,在其他温度下可能更糟。这与我在我的频谱分析仪上看到的错误完全吻合(2.402GHz * 52ppm ~=125KHz错误)。它也可能有错误的电容,等等。我的问题解决了,当我焊接正确的部分在它的地方。
到目前为止,我无法在0x80的默认修剪中使用正确的水晶来重现此问题。如果该更改,我会更新此线程,但否则我认为此问题已关闭。
嗨mbwjr12,
非常感谢您的评论和指示。对社区非常有帮助。
谢谢,PM_DIALOG.