DA1468X延长睡眠——呼吸定时器和领导

了解更多常见问题教程

17个职位/ 0
最后发表
bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
DA1468X延长睡眠——呼吸定时器和领导

你好

我愿意把我的设备在延长睡眠free_rtos由于闲置的任务。现在我面临着一些问题。

我的代码是基于对话框的示例代码。系统启动,freertos开始,任务被正确加载。

我运行一个循环在我眨眼的主要任务导致检查系统是活着,执行一个1秒的睡眠。

我可以跟踪系统直到用水正常执行。那时候关闭,关闭呼吸计时器。

注射用水的退出,呼吸计时器不起床。

目前breath_config breath_cfg hw_led_set_ledX_src (…), hw_breath_init (&breath_cfg);和hw_breath_enable ();都是位于prvSetupHardware。如果我把这些放在periph_init,甚至根本没有led点亮活动或空闲模式。

你能确认给我吗

——呼吸定时器的初始化序列是什么?

——在睡眠时呼吸计时器寄存器被保留?

——呼吸定时器状态和依赖关系正在由目前的固件?

调试等情况下的步骤是什么?

提前谢谢你

致以最亲切的问候

关键词:
设备:
PW_Dialog
离线
最后看到:6天11小时前
工作人员
加入:2019-04-03 02:54
你好,

你好,

我可以知道代码基于示例代码,和你有什么修改吗?是你正在实施的功能使得外部自动呼吸功能了吗?

领导的呼吸功能,下面的代码显示了一个例子:

breath_config配置= {
.dc_min = dc_min,
.dc_max = dc_max,
.dc_step = dc_step,
.freq_div = freq_div,
.polarity = HW_BREATH_PWM_POL_POS
};

/ *
*设置呼吸定时器配置,所以硬件可以自动驱动LED。
* /
hw_breath_init(配置);

/ *
*设置LED1输出的计时器。
* /
hw_led_set_led1_src (HW_LED_SRC1_BREATH);
hw_led_enable_led1(真正的);

/ *
*然后开始呼吸计时器。
* /
hw_breath_enable ();

更多细节可以发现peripherals_demo的SDK。

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
你好

你好

我的代码是基于freertos_retarget源代码。

我用你给我什么

静态孔隙prvSetupHardware(空白)
{
/ /激活中断

....

breath_config breath_cfg = {

/ /光功率.dc_min = 9日- 1
.dc_max = 10 / /光功率设置为10/255
.dc_step = 255,
.freq_div = 255,
.polarity = HW_BREATH_PWM_POL_POS
};

/ *初始化硬件(OTPC、缓存、ADC、DCDC、USB垫,射频,适配器,公共汽车、设备、监督)* /
pm_system_init (periph_init);

/ /初始化中断控制器
hw_wkup_init (&wkup_cfg);

/ /配置LED1,红色
hw_led_set_led1_src (HW_LED_SRC1_BREATH);
hw_led_enable_led1(假);
/ /配置LED2,绿色
hw_led_set_led2_src (HW_LED_SRC2_BREATH);
hw_led_enable_led2(真正的);
/ /配置LED3,蓝色
hw_led_set_led3_src (HW_LED_SRC3_BREATH);
hw_led_enable_led3(假);
/ /配置呼吸计时器所需RGB Led
hw_breath_init (&breath_cfg);
hw_breath_enable ();

}

如果我把前面的代码放在periph_init,不点亮led。

起床后extended_sleep远离。

提前谢谢你

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
似乎更深的麻烦比

似乎比领导更深层的问题。

注射用水后睡觉前:0 x50000066 = 0 x3和之后pm_system_wake_up 0 x50000066 = 0 x2。

数据表指出安全引导(我测试生产模式与监管机构在使用但没有安全引导)。

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
新提示0 x500030d0 = 0

其他提示睡前0 x500030d0 = 0, 0 x500030d0 = 1后睡觉。看来,这个功能不是起床后恢复正常。

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
下一个提示是0 x50000022 =

下一个提示是0 x50000022 = 0 x54b7睡眠之前,0 x54b6后睡觉。RC16停止在延长睡眠,而不是重新启动。DCDC依赖它在行动中被杀。(0 x5000002a = 0 x20d2后睡眠:1 v8和1 v8p下来)

我试图把系统停止使用DCDC dg_configUSE_DCDC = 0。

结果0 x50000022 = 0 xe7d3之前和之后的睡眠。我没有更多的睡眠后崩溃。

但我仍然没有领导

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
新的提示。呼吸计时器

新的提示。LED_CONTROL_REG sys_tcs全被抹去了。如果y在periph_init做把我领导的来源,然后被sys_tcs在引导和唤醒。

我不使用OTP,为什么这个寄存器是唯一一组在这两个时刻sys_tcs ?

虽然看附录H - b - 044, LED_CONTROL_REG似乎是在生产过程中使用。

你能请检查这个freertos_retarget DA14683上运行示例代码?

现在我不能用睡眠模式。我的产品的能源是至关重要的。

谢谢你!

PM_Dialog
离线
最后看到:2小时54分钟前
工作人员
加入:2018-02-08 11:03
嗨,鲍勃,

嗨,鲍勃,

你能试着去实现它在任何的祝福SDK的例子使用睡眠模式?你如何测试设备无法睡觉?你在periph_init配置是也?

谢谢,PM_Dialog

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
你好

你好

我没有时间使用祝福我的原型。BSP相当大现在已经搬走了,因为这集成蓝牙并不在我们的最小可行产品。

periph_init目前只有GPIOs /配置,GPIO高/低一些,在执行过程中是固定的,现在呼吸定时器初始化。

我设法睡扩展工作:

——通过禁用DCDC

- - >你能证实我为什么RC16停止在睡眠中,而不是重新启动吗?

——通过移除sys_tcs电源管理。

- - >你能证实我如何把它阻止重载LED_CONTROL_REG OTP重置价值(0 x80) ?(在一个定制的董事会DA14683 OTP从未使用过)

——通过移动呼吸计时器periph_init init /配置

- - >领导是在睡眠期间关闭。因此我只能使用在执行时间。

通过使用一个简单的循环的主要任务

如果我做负载比主循环代码我做各种崩溃/问题:

——如果我使用hw_i2c

- - >硬故障。(我需要搬到ad_i2c重新加载控制器状态唤醒后)。

——如果UART接收数据时,CPU是睡觉还是睡觉(我认为外部调制解调器发送时钟更新)

- - >打破UART的中断处理程序位于HW_UART_INT_BUSY_DETECTED。我能看到评论RBR_THR_DLL有关的代码。如果你有任何主意,我将高兴。

——UART错过一些外部调制解调器通讯我的程序不正确的行为。

- - >我需要硬件流控制在这里,但是我的硬件是不可以。如果你有一个参考实现的异步通信使用硬件流控制UART,我会很高兴。我目前在一个线程等待数据轮询ad_uart_read沟通与外部调制解调器但似乎它错过一些字节。

可能将会有更多的麻烦与睡眠功能。到目前为止我不能可靠地使用它。

提前谢谢你

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
你好

你好

我搬到我的代码从hw_i2c ad_i2c。我这边没有更多问题。

在UART方面,

——我残疾水平换档器,为外部调制解调器在睡眠期间所以我没有消息在睡眠中。这不会改变任何事情。

——我使用一个JTAG探针检查上下文的休息。看来,问题是有关uart控制台,因为我的代码不使用异步通信所以不上生成IRQ uart我使用外部调制解调器与我沟通。我得到的唯一IRQ从控制台服务。

你能请解决以下吗?

- RC16 / DCDC唤醒后关闭

——从OTP sys_tcs重载值而不使用OTP

——在__BRK控制台服务中断的结局

提前谢谢你

PM_Dialog
离线
最后看到:2小时54分钟前
工作人员
加入:2018-02-08 11:03
嗨,鲍勃,

嗨,鲍勃,

对不起,我有点困惑。我强烈建议你不要修改SDK文件。hw_i2c是低水平的司机(LLD)和ad_i2c是I2C的适配器。我强烈推荐使用适配器e推荐使用适配器来访问硬件外设,因为不仅提供外围,也确保其他任务目前访问它,停止操作,直到外围再次释放。所以你不需要担心,如果另一个任务同时访问相同的外围。另外,在睡眠模式关闭所有外围模块。

谢谢,PM_Dialog

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
你能解决吗

你好

你能请看看以下吗?

1。控制台服务生成uart __BRK中断结束。这个问题发生当我做激活睡眠延长。

Hardfault分析:

- LR指向UART_Interrupt_Handler (HW_UART1)用于控制台服务。

——电脑点CONFIG_UART_IGNORE_BUSY_DETECT在空白UART_Interrupt_Handler (HW_UART_ID uart)

我没有尝试使用dma uart的配置。没有变化。

2。从OTP sys_tcs重载值虽然没有使用OTP。这个问题是要解决以避免修改BSP文件。

——看我之前的分析。我可以算出使用一个JTAG探针LED_CONTROL_REG是唯一由sys_tcs_apply寄存器加载(tcs_system);功能。重新加载值是0 x80。明确保留我的led灯的状态。

3所示。RC16 / DCDC唤醒后关闭。ldo可以做这项工作,直到延长睡眠可以用于DCDC启用。

这里我只看到之前/之后睡眠RC16趋于零,永远不会回到1。第六章在DS v3.1规范,DCDC依靠RC16所以不能起床后还活着。

提前谢谢你

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
你好

你好

新的硬故障:我得到一个新的ad_gpadc_read睡眠发生后()。我检查了GPADC寄存器和它们在复位状态。

你能确认

睡眠模式后——所有适配器测试过吗?

——我可以有适配器“开放”函数在构造函数?

——我不需要再次调用“开放”在正常操作。(这包括唤醒后)?

提前谢谢你

PM_Dialog
离线
最后看到:2小时54分钟前
工作人员
加入:2018-02-08 11:03
嗨,鲍勃,

嗨,鲍勃,

我很困惑你所做的更改。

  1. SDK文件适配器和LLD司机不得修改。
  2. 所有的适配器测试
  3. 在使用适配器之前你应该初始化和关闭。
  4. 关于WDOD,你应该调试您的程序,找到代码卡住的地方。
  5. 该系统将运行16 mhz时钟在主动模式。在睡眠模式下运行32 khz时钟。

我的建议是阅读嗯- b - 044: DA1468x软件平台参考嗯- b - 056: DA1468x软件开发人员指南为了理解SDK的架构。你还可以找到“适配器”“教程”一节中的例子DA1468x支持门户。

谢谢,PM_Dialog

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
你好

你好

你能发射freertos_retaget,照亮一个领导和激活extended_sleep DA14683 (printf /控制台重定向到一个uart, dcdc和dma启用)?

——睡前LED_CONTROL_REG的价值是什么?后吗?

-什么是睡前RC16使钻头的价值?后吗?DCDC还活着吗?

谢谢你的建议的阅读手册,但它看起来像虫子在SDK和我将高兴你检查它在你身边。我从董事会支持包获得困难的缺点。

谢谢你!

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
你好

你好

好消息。我终于设法让睡眠功能工作没有崩溃。

我打3.3 v的BOD,因为在保留LDO电源故障。

事情好激活后闪1 v8关掉特性从而卸货3 v3 RET LDO。

坏消息n°1。系统停止几分钟后睡觉。没有发现故障。

坏消息n°2。我还是打3 v3的BOD如果我做使外围设备。

你知道什么是3.3 v RET LDO的功率预算在延长睡眠(请不要回答10马附有很多东西)?

我有1.2 ma v8p 1日和300年3日µa v3理论绝对最大但启用睡眠时我做了BOD和结束加电复位。

谢谢你!

bobspam@free.fr
离线
最后看到:2周6天前
加入:2018-06-20 08:07
你好

你好

我终于设法解决最后一个问题

——我必须手动驱动开关extended_sleep在一个时刻,我知道没有什么是发生在系统(和在控制台上!)。我也不得不管理手动切换到空闲模式避免小睡在正常操作(如睡在等待一个适配器的事件)。

——我不得不提高了电容器VBAT 20µf避免BOD 3 v3(峰值电流在唤醒了VBAT掉下来)。

——我的一个外部周边消耗1日8马v8p完全关闭模式。不好用10马预算!我不得不重置后操作让它消耗,少睡觉。

——系统没有旋律睡觉的任务没有pm_set_wakeup_mode(真正的)激活。没有它我困在睡眠系统稳定,但什么也不做。

最后的旅程似乎工作但睡眠模式

——我不了重载OTP值从电源管理器,因为sys_tcs_apply (tcs_system);重载LED_CONTROL_REG periph_init后执行。

我请再次帮忙至少OTP问题所以我可以发布一个版本没有修改负载支持包文件。

谢谢你!