嗨,对话
我在基于DA14681的定制板上工作。我在该板上工作了一年多,工作正常。但现在,当我执行SUOTA更新时,它在第一次时会连接并突然断开,DA14681会重新启动。
这发生在我这个月的固件上。旧固件的二进制文件运行良好,这是5-6个月前的固件。
然后我禁用了看门狗,现在当索塔更新进行时,它没有断开连接,但即使在45分钟内它也会冻结在0%。
我不能找到什么是问题,我在代码中做了什么,这是发生的。发现了6个月大的双星,但没有发现1个月大的。
请帮帮我。
设备:
我已经检查过调试器,它在这里死机了
你好,mahmed106,
让我查一下,然后给你答复。请问您在设计中使用的QSPI flash是什么?
谢谢,下午好
GD25LQ80CEIG
当计时器0的时间为1Khz时,Suota工作,但在20Khz时失败
你好,mahmed106,
你能分享一下定时器是如何配置的吗?你能在一个非SUOTA项目中复制这个吗?如果你能提供进一步的输入以便在我这边复制它,这将非常有帮助。
谢谢,下午好
void\u timer0\u init(void)
{
timer0\u配置cfg={
/*
*选择时钟源。
*
*这可以是外部晶体XTAL32K(低功耗时钟)
*或晶体XTAL16MHz(快速时钟)。
*
*\注:如果选择慢时钟(XTAL32K),并且在硬件重置(冷启动)时,
*晶体沉淀大约需要8秒钟(最坏情况)。
*因此,为了避免PWM脉冲中的差异,不应启用任何计时器
*该时间段的功能。
*/
.clk_src=HW_timer 0_clk_src_FAST,
/*
*选择时钟分频器。
*
*在这个例子中,我们将选定的时钟源(即XTAL16MHz)划分为8。
*因此,计时器0的实际时钟源为16/8=2MHz(每个时钟滴答声为0.5us)
*/
.fast_clk_div=HW_timer 0_fast_clk_div 8,
/*对于PWM功能,ON-counter时钟分压器应该被禁用*/
.on_clock_div = false,
/*
*T0计数器值在每个时钟周期上递减。开始时从
* M寄存器,然后,一旦达到零,从N寄存器加载(然后再次M和N)。
*
*当倒计时M寄存器时,PWM0为高电平,当倒计时N寄存器时,PWM0为低电平。
*
*在本例中,我们希望生成4kHz脉冲(250us周期)。这意味着计时器为0
*应测量250us/0.5us=500时钟滴答声。
*/
/*
*占空比开启,以时钟节拍表示。
*
*在本例中,我们希望生成占空比为50%的脉冲,因此
*值应设置为500/2=250个时钟滴答声
*
*/
.t0_reload_m=19,//1KHz 10%->199,249,//从0开始计数后减去1个时钟滴答声
/*
*占空比关闭,以时钟节拍表示。
*
*在我们的示例中,该值应设置为(500-250)=250个时钟信号
*
*/
.t0_reload_n=79,//1KHz 10%->1789249,//自从我们从0开始计数以来,减去1个时钟滴答声
/*
*该值声明将发出中断的时间(以时钟信号表示)。
*在典型应用中,该值等于M寄存器和N寄存器之和。
*
*\注:当ON计数器达到零且T0计数器达到时,将发出中断
*递减N寄存器中加载的值时为零。(当一个完整的PWM周期
*完成)。例如,给定当前配置,将值设置为
*[500]将导致每2个PWM周期(500us)发出一次中断
*/
.on_reload=98//1KHz->1998,//498,//249+249=498
/*脉宽调制表21Khz
*21Khz总计92,1Khz总计1998
*高值=92 x(PWM_百分比/100)
*低值=92-高值
* PWM %高低
5 5 87
10 9 83
15 14 78
20 18 74
69年25日23日
30 28 64
35 32 60
40 37 55
45 41 51
50 46 46
55 51 41
60 55 37
65 60 32
28 70 64
75 69 23
80 74 18
85 78 14
90 83 9
95 87 5
100 92 0
*/
};
//初始化计时器\u 0
hw_timer0_init (cfg);
在一个非suota项目中,我可以进行suota更新,但这并没有多大意义。在suota项目中,问题发生在souta更新时
你好,mahmed106,
感谢您的更新-我将尝试复制它。同时,是否可以使用BLE嗅探工具并共享捕获,以便我了解空中发生的情况?
谢谢,下午好
你好,mahmed106,
抱歉耽搁了-能和我分享这个项目吗?另外,你也能分享一个嗅探日志吗?
谢谢,下午好