你好,
我想从UART编译DSPS代码以获得生产引导,并延长睡眠支持。
我假设延长睡眠必须启用如下:
/ *睡眠模式* /#define cfg_ext_sleep.//#undef cfg_deep_sleep//#undef cfg_ext_sleep
我是否需要将Development_debug设置为0?
#define development_debug 0.
是否有任何其他标志必须为生产代码设置?
问候,伊利亚
代码适用于“设备”侧。
嗨imalamoud.
正如您所说,您需要,将CFG_EXT_SLEEP和Development_debug定义为0
你也必须
如果要在OTP上刻录固件,请定义app_boot_from_otp,
如果设备将从OTP读取NVDS数据,请定义READ_NVDS_STRUCT_FROM_OTP
定义CFG_WDOG.
谢谢mt_dialog.
谢谢!
我们将通过没有OTP的UART启动。我仍然需要将Development_debug设置为0(在代码中为0用于OTP引导)吗?2.根据您的推荐设置重新编译代码,并延长睡眠,并试图加载到我们的测试设置 - 断开部分基本套件(删除的所有跳线)通过P0_2,_3和流量控制连接到FTDI UARTp0_6,_7。我无法让它宣传或在最好的情况下广告这是一个很短的时间。尝试了硬件和SW流量控制。然而,一旦我重新编译了延长睡眠禁用,它就能正常 - 广告和连接和流数据。
可能是什么原因?
1)是的,您应该将Development_debug设置为0,不必要的代码将进入您的程序,如果发生某些事情,看门狗也不会重置您的程序。
2)当使用JTAG定义和下载CFG_EXT_SLEEP时,您的代码是否正在执行?您是否对代码进行了任何更改?
我们配置了我们的设备侧,如上所述使用CFG_EXT_SLEEP。
通过UART上传代码。设置HW流量控制。
设备连接并发送数据正常。
然而,最小功耗总是大约600A。看起来它不会进入延长睡眠。
我们可能错过了什么?
通过定义CFG_UART_HW_FLOW_CTRL,您将设备设置为在RTS / CT下运行(对于其他帖子)。
如何测量设备中的当前策略?您可以从智能片段查看您的设备无法延长睡眠吗?
感谢你的回复。
已经开发了一个基于14580模块的小型接口板,并通过优质的Fluke Micro电流表直接测量电路板电路。由于我们的产品(电池供电的LCR仪表镊子)具有低于2uA和电流的睡眠电流,因此对我们来说非常普遍必须不时检查(电池很小)。所以测量错误不太可能。
数据包(10bytes)在一秒内发送一次。在数据包之间拉动RTS。要发送数据,RTS被拉下来,我们等待CTS。
那么什么可能是没有进入睡眠模式的原因?
嗨imalamoud,
600μA很可能是由连接的调试器引起的。当我连接JTAG / SWD时,我也读取约0.6mA。
当处于空闲模式(电源而且没有代码运行)时,我也测量约0.6mA。在这种情况下,设备可能会在您所说的情况下进入睡眠模式。
是同一电源的其他设备,可能导致睡眠高睡眠电流吗?
最好的问候,bb_dialog。
JTAG / SWD未连接。电路板是单独的,只有UART引脚,HW复位和电源在连接器上。电流直接在电路板上测量,因此没有其他设备。
同样,也许我们正在做不正确的DSP CTS / RTS控制。
我们配置了CFG_UART_HW_FLOW_CTRL并在RTS / CT下运行。
这样对吗?
什么可能是没有进入睡眠模式的原因?我们尝试了几个模块。
我们可以提出的唯一认为,也许是因为DSP的连接间隔是两个小12.5毫秒(给予少量睡眠)仪器没有显示实际功耗。您可以尝试的是测量广告模式中的功耗(内部内部更大)或更改(仅用于测试,这将减少Datarate)连接间隔参数(#define app_param_updt_intv_min 10 //n*1.25ms)和测量再次。请尝试使用分析仪测量电源以确保设备无法睡眠。
让我重新上限:
- 14580安装在单独的模块板上。电路板连接到MSP430。仅使用5个14580引脚 - PO分配为Rx / Tx / CTS / RTS并重置。- 我们使用DSP设备侧启动它。延长睡眠已启用。- 可以使用优质仪器测量消耗电流。- 如果MSP430处于睡眠模式时,没有14580板消耗1.2UA。- 一旦连接电路板即使MSP430睡眠消耗始终稳定在600A。我重复,MSP430处于睡眠模式。
你能详细解释 - 我们是否需要拉起或拉下一些引脚(例如RTS)或将它们设置为第三州?哪个别针?14580可以通过输入消耗电流吗?
请帮助我们真正击中这个街区而无法继续。
对此进行任何评论?
我可以发送你的原理图。
只要给我们一些时间,我们正在检查它。
相当一段时间过去了。
这个问题仍然存在于我们的生产设备中。
你有一些想法吗?
我不认为这个问题与580没有睡觉的事实,但如果你有一个引脚,那么应该有一些东西在定制板上应该有一些泄漏,如果你有一个pin,并且连接的引脚是一个下拉将泄漏。在DSP应用中,RX和CTS都是上拉,因此如果设备睡眠时,外部MCU的引脚被拉下来,则会有泄漏。尝试逐个删除引脚并检查系统的总电流消耗是否下降。
谢谢你快点回复
MCU引脚转向第三个状态(切换到输入)以启动睡眠状态。它可以导致泄漏。另外,它是否可以泄漏0.5mA?
只是为了验证,我已配置以下参数
#define cfg_mem_map_ext_sleep.#undef cfg_mem_map_deep_sleep.
#undef cfg_development_debug.
sleep_state_t app_default_sleep_mode = arch_ext_sleep_on;
我错过了配置的东西吗?
不,如果你有外部MCU的引脚,我不认为应该有任何泄漏。所以我想在附加580时运行FW运行并宣传(只是为了让设备清除广告事件之间的睡眠),有没有机会在DSP队列中有待处理的数据?例如,当设备通告其接收数据时,这将保持设备唤醒(甚至一个字符也将在IT广告时保持设备在无休眠模式下)。因此,也许580在某些时候从设备接收垃圾,没有连接,因此无处可发送数据,以便在进行连接之前保持清醒。您还可以从MCU分离580并单独测量实体的功耗,以隔离问题(检查其与外部MCU相关的东西或仅使用580)。
我们注意到,当CTS-RTS与MCU断开连接时,每3.5毫秒仍有一些580针的活动。它告诉你一些事情吗?我们可以无意中启用(或左启用)一些计时器吗?
我不这么认为,DSP不要使用任何定时器来驱动RTS,每次设备唤醒并宣传它都会向下推拉它,以指示可以执行接收,因为它唤醒,所以应用当广告时,它会使RTS低约5毫秒并睡眠(因此RTS为高约100ms,这是广告间隔)。连接器件时,RTS为低约2.5ms,高约10ms。
代码适用于“设备”侧。
嗨imalamoud.
正如您所说,您需要,将CFG_EXT_SLEEP和Development_debug定义为0
你也必须
如果要在OTP上刻录固件,请定义app_boot_from_otp,
如果设备将从OTP读取NVDS数据,请定义READ_NVDS_STRUCT_FROM_OTP
定义CFG_WDOG.
谢谢mt_dialog.
谢谢!
你好,
我们将通过没有OTP的UART启动。我仍然需要将Development_debug设置为0(在代码中为0用于OTP引导)吗?
2.根据您的推荐设置重新编译代码,并延长睡眠,并试图加载到我们的测试设置 - 断开部分基本套件(删除的所有跳线)通过P0_2,_3和流量控制连接到FTDI UARTp0_6,_7。我无法让它宣传或在最好的情况下广告这是一个很短的时间。尝试了硬件和SW流量控制。
然而,一旦我重新编译了延长睡眠禁用,它就能正常 - 广告和连接和流数据。
可能是什么原因?
嗨imalamoud.
1)是的,您应该将Development_debug设置为0,不必要的代码将进入您的程序,如果发生某些事情,看门狗也不会重置您的程序。
2)当使用JTAG定义和下载CFG_EXT_SLEEP时,您的代码是否正在执行?您是否对代码进行了任何更改?
谢谢mt_dialog.
你好,
我们配置了我们的设备侧,如上所述使用CFG_EXT_SLEEP。
通过UART上传代码。设置HW流量控制。
设备连接并发送数据正常。
然而,最小功耗总是大约600A。看起来它不会进入延长睡眠。
我们可能错过了什么?
嗨imalamoud.
通过定义CFG_UART_HW_FLOW_CTRL,您将设备设置为在RTS / CT下运行(对于其他帖子)。
如何测量设备中的当前策略?您可以从智能片段查看您的设备无法延长睡眠吗?
谢谢mt_dialog.
感谢你的回复。
已经开发了一个基于14580模块的小型接口板,并通过优质的Fluke Micro电流表直接测量电路板电路。
由于我们的产品(电池供电的LCR仪表镊子)具有低于2uA和电流的睡眠电流,因此对我们来说非常普遍
必须不时检查(电池很小)。所以测量错误不太可能。
数据包(10bytes)在一秒内发送一次。在数据包之间拉动RTS。要发送数据,RTS被拉下来,我们等待CTS。
那么什么可能是没有进入睡眠模式的原因?
嗨imalamoud,
600μA很可能是由连接的调试器引起的。
当我连接JTAG / SWD时,我也读取约0.6mA。
当处于空闲模式(电源而且没有代码运行)时,我也测量约0.6mA。
在这种情况下,设备可能会在您所说的情况下进入睡眠模式。
是同一电源的其他设备,可能导致睡眠高睡眠电流吗?
最好的问候,bb_dialog。
你好,
JTAG / SWD未连接。电路板是单独的,只有UART引脚,HW复位和电源在连接器上。电流直接在电路板上测量,因此没有其他设备。
同样,也许我们正在做不正确的DSP CTS / RTS控制。
我们配置了CFG_UART_HW_FLOW_CTRL并在RTS / CT下运行。
数据包(10bytes)在一秒内发送一次。在数据包之间拉动RTS。要发送数据,RTS被拉下来,我们等待CTS。
这样对吗?
什么可能是没有进入睡眠模式的原因?我们尝试了几个模块。
什么可能是没有进入睡眠模式的原因?我们尝试了几个模块。
嗨imalamoud,
我们可以提出的唯一认为,也许是因为DSP的连接间隔是两个小12.5毫秒(给予少量睡眠)仪器没有显示实际功耗。您可以尝试的是测量广告模式中的功耗(内部内部更大)或更改(仅用于测试,这将减少Datarate)连接间隔参数(#define app_param_updt_intv_min 10 //n*1.25ms)和测量再次。请尝试使用分析仪测量电源以确保设备无法睡眠。
谢谢mt_dialog.
你好,
让我重新上限:
- 14580安装在单独的模块板上。电路板连接到MSP430。仅使用5个14580引脚 - PO分配为Rx / Tx / CTS / RTS并重置。
- 我们使用DSP设备侧启动它。延长睡眠已启用。
- 可以使用优质仪器测量消耗电流。
- 如果MSP430处于睡眠模式时,没有14580板消耗1.2UA。
- 一旦连接电路板即使MSP430睡眠消耗始终稳定在600A。
我重复,MSP430处于睡眠模式。
你能详细解释 - 我们是否需要拉起或拉下一些引脚(例如RTS)或将它们设置为第三州?哪个别针?
14580可以通过输入消耗电流吗?
请帮助我们真正击中这个街区而无法继续。
对此进行任何评论?
我可以发送你的原理图。
嗨imalamoud,
只要给我们一些时间,我们正在检查它。
谢谢mt_dialog.
你好,
相当一段时间过去了。
这个问题仍然存在于我们的生产设备中。
你有一些想法吗?
嗨imalamoud,
我不认为这个问题与580没有睡觉的事实,但如果你有一个引脚,那么应该有一些东西在定制板上应该有一些泄漏,如果你有一个pin,并且连接的引脚是一个下拉将泄漏。在DSP应用中,RX和CTS都是上拉,因此如果设备睡眠时,外部MCU的引脚被拉下来,则会有泄漏。尝试逐个删除引脚并检查系统的总电流消耗是否下降。
谢谢mt_dialog.
谢谢你快点回复
MCU引脚转向第三个状态(切换到输入)以启动睡眠状态。它可以导致泄漏。另外,它是否可以泄漏0.5mA?
只是为了验证,我已配置以下参数
#define cfg_mem_map_ext_sleep.
#undef cfg_mem_map_deep_sleep.
#undef cfg_development_debug.
sleep_state_t app_default_sleep_mode = arch_ext_sleep_on;
我错过了配置的东西吗?
嗨imalamoud,
不,如果你有外部MCU的引脚,我不认为应该有任何泄漏。所以我想在附加580时运行FW运行并宣传(只是为了让设备清除广告事件之间的睡眠),有没有机会在DSP队列中有待处理的数据?例如,当设备通告其接收数据时,这将保持设备唤醒(甚至一个字符也将在IT广告时保持设备在无休眠模式下)。因此,也许580在某些时候从设备接收垃圾,没有连接,因此无处可发送数据,以便在进行连接之前保持清醒。您还可以从MCU分离580并单独测量实体的功耗,以隔离问题(检查其与外部MCU相关的东西或仅使用580)。
谢谢mt_dialog.
我们注意到,当CTS-RTS与MCU断开连接时,每3.5毫秒仍有一些580针的活动。
它告诉你一些事情吗?我们可以无意中启用(或左启用)一些计时器吗?
嗨imalamoud,
我不这么认为,DSP不要使用任何定时器来驱动RTS,每次设备唤醒并宣传它都会向下推拉它,以指示可以执行接收,因为它唤醒,所以应用当广告时,它会使RTS低约5毫秒并睡眠(因此RTS为高约100ms,这是广告间隔)。连接器件时,RTS为低约2.5ms,高约10ms。
谢谢mt_dialog.