嗨对话小组
我使用自己的自定义,电池操作,巴克模式,Da14580与需求方与外部flash设备项目,添加i2c司机(SDA sci,打开注册- 10 k与VBAT3v),一旦数据发送到主保佑设备,扩展dsp设备断开和进入睡眠,我用数字万用表(DMM)检查了功耗,
广告 - 512UA,
连接,数据XT - 776UA
睡眠- 322ua,
我已经测试了相同的DSPS设备项目与Murata P2ML 3656 - Murata LBCA2HNZYZ) - ZY型Dev Board,与DMM和功率profiler(没有i2c驱动,静态数据)
广告 - 240A,
连接,数据xt - 537ua
睡眠- 110ua,
我也测试了与对话框DA14583相同的设置
广告 - 250ua,
连接,数据xt - 313 - 512 ua
睡觉 - 227 ua,我得到了......
为什么我不能得到1.3u安培或附近??请帮我解决这个??
谢谢对话团队
设备:
嗨prasanth,
DSP项目的永久性睡眠永远不会落在永久性睡眠中,它始终继续广告或保持连接在连接间隔或广告间隔之间存在并睡眠。因此,如果在您的固件中,您将在永久睡眠中设置设备,并且您可以在睡眠功能上进行休眠功能,然后您应该看到靠近1.3ua的值。您在电路板上的其他设备可以添加额外的消耗(我想电路板上有一个I2C内存,因此额外的功耗可能来自该设备)或通过yoru板上的泄漏。此外,您提到的值我认为它们是仪器测量的平均值。请检查教程4:在“文档”选项卡中配置睡眠模式在“睡眠期间”如何正确测量功耗的文档中。
谢谢mt_dialog.
在DSPS设备项目中,一旦数据发送到主完成,我们已经将DSPS设备放置5分钟睡眠,我能够看到设备5分钟没有广告,5分钟后只有DSPS设备是广告。所以睡眠是正常的,不是吗??
温度和湿度传感器的I2C驱动器,环境光传感器。
正如您所说的那样,如果硬件问题,为什么在DA14583 IOT套件中也是如此,我得到了相同的,(通过连接万用表,到智能乐队IOT电路板的开/关开关,电池端TI万用表正,CKT结束到Mutimeter COM)
谢谢你的对话框
嗨对话框
PFA。能量分析器图
谢谢你!
嗨prasanth,
从电力分布器来看,我可以看到设备睡觉并醒来所以是的,设备应该睡觉,因为你的电路板上有传感器,你的传感器消耗电源额外的电源,它不仅是消耗电力的580。关于IOT,因为它还具有额外的传感器,并且当设备睡眠时,您无法获得大约1.4UA,所以消耗的电流约为11ua。
谢谢mt_dialog.
你好,
你需要切断闪光灯的供电以减少电流消耗。
嗨Wisilica
感谢您的回复。
那么DA14583 IOT智能债券套件如何给出11uA,这也使用“切断SPI供应”配置..请给我一些更多细节......
I2c传感器有10k上拉,这会导致什么问题吗??...如何解决这些问题?
谢谢你
嗨对话框
https://support.dialog-semicondiondiondiondum/issues-external-pi-flash.
如上文帖子所示,辅助引导程序将修复此问题(对于DA14580)??
谢谢你。
嗨prasanth,
IOT,在未使用时,在低功耗模式下设置闪光灯(它仍然消耗一些功率,但在它功能完全运行时不得如此,但它还在低功耗模式下设置附加传感器,可以检查SPI_FLASH_POWER_DOWN()spi_flash.c文件中的函数。正如我上面提到的那样,您必须检查系统上的其他模块是否会消耗额外的电源。
关于你贴在上面的帖子是否能解决你的问题,你确定你的定制设备消耗的额外电力来自于外部闪光灯吗?二级引导装载程序的原因是,如果你关闭闪光灯,你想重置装置在ROM引导装载程序没有醒来flash的能力,这在二级引导装载程序掌权的flash, 580年将会正常启动了。所以,请检查这些额外的电力消耗来自哪里(内存、传感器等)。
谢谢mt_dialog.
嗨对话框
如何在DSP设备项目中使用SPI_FLASH_POWER_DOWN()(对于DA14580和DA14583),是否有任何示例项目或文档?
PFA的外部外设在我的定制板,我也在DSPS使用这个电池水平监测,
我有两个定制板,一个是DA14580BLE,另一个是DA14583,如果SPI flash绘制更多的功率,为什么这两个定制板当前消耗几乎相同??DA14583的custom Board应该显示的少,对吗?
嗨prasanth,
由于DSP示例不使用闪光灯,因此使用Flash开发的参考设计具有此功能,只需调用上面提到的功能,以便将闪光灯淘压,如信标,实现功能位于SPI_FLASH.C驱动程序中。
我不能预见为什么你的板子上有额外的电流,因为这取决于相当多的因素,你必须一个一个地检查是什么增加了你的功耗,检查额外的设备。583年嵌入式flash和你提到580年外部闪光灯,所以我想,如果你不闪了你会得到类似的功耗,正如我前面提到的flash在583年需要关闭,如果这是个问题。
谢谢mt_dialog.
嗨对话框
https://wenku.baidu.com/view/20871b8127d3240c8547fd2.html.
我跟随以上链接以在dsps_device中使用spi_flash_power_down(),但不起作用...
从灯塔项目,每个读/写操作后spi_flash_power_down()调用,但在需求方设备项目我不做任何读/写SPI Flash,那么到底从哪个函数我必须调用此spi_flash_power_down(),这将是有意义的。
比你
嗨prasanth,
我提到了Flash Power Down命令,以便将这种命令发送到Flash,以检查闪存是否会使您在电路板上看到的额外电量。所以你可以才能调用它才能检查消耗是否会下降,如果您没有看到任何效果,那么其他东西正在消耗额外的电流。
谢谢mt_dialog.
甚至在调用spi_flash_power_down()时,我们也没有看到电源下降。必须通过gpio控制flash电源,关闭flash。
嗨对话框
Q 1。在我们的自定义板DA14580 - 使用外部闪存时,我已删除所有上拉寄存器(10k)并测试,我无法通过SmartSnippet闪存/擦除SPI内存,如果我在CS引脚中提出上床,它正在工作,但在信标和智能标签设计我没有看到CS引脚的任何上床?
谢谢你的对话框
嗨prasanth,
如果这是你的问题的话,在信标或智能标签或任何开发套件的CS上都没有pullup。一个大胆的猜测,也许其他东西也在驱动CS线,一个电子问题在定制板上可能,导致在您的SPI线感应噪音?
谢谢mt_dialog.
嗨对话框
谢谢对话框,现在我可以使用没有上拉寄存器的SPI闪存。
在DSPS设备项目中
如果我在“user_periph_setup.c”中调用spi_flash_power_down()中,我闪过这个代码,我的设备在一段时间后没有广告,也在擦除SPI Flash我面临错误,在IoT项目中,SPI_FLASH_POWER_DOWN()在阅读/写入配置参数时调用,但在DSPS如何使用此API时?
谢谢你的对话框
嗨prasanth,
periph_init()是在设备的每个唤醒中执行的函数,如果在某些时候设备停止或给您错误,您将必须通过调试检查实际原因。无论如何,没有适当的点,你会把闪存的断电,在阅读或写入数据之后与闪存相互作用后,应立即调用函数(如物联网使用它)。现在,如果出于某种原因,闪光灯有源DSP运行时可以调用App_On_Init()回调中的函数,这应该是OK。
谢谢mt_dialog.
嗨对话框
正如您所建议的那样,我正在user_on_init()中调用spi_flash_power_down()
空白user_on_init(空白)
{
// SPS应用程序初始化
user_scheduler_init();
default_app_on_init ();
da14580_spi_flash_init ();
da14580_spi_flash_deinit();
}
空白da14580_spi_flash_init(空白)
{
spi_pad_t cs_pad_param;
Int8_t man_dev_id = 0;
cs_pad_param.port = spi_en_gpio_port;
cs_pad_param.pin = spi_en_gpio_pin;
man_dev_id = spi_flash_enable(cs_pad_param.port,cs_pad_param.pin);
if(man_dev_id == spi_flash_auto_detect_not_detected)
{
//设备未被识别。
//使用默认参数。
//可选地,这里可以断言错误。
spi_flash_init (SPI_FLASH_DEFAULT_SIZE SPI_FLASH_DEFAULT_PAGE);
}
}
Void da14580_spi_flash_deinit(Void)
{
spi_flash_power_down();
}
但我仍在休眠期间获得235ua
作为Menitone DIN SMART_TAG项目,我已更改user_periph_setup.c
#if development_debug.
空白GPIO_reservations(空白)
{
/ *
*全球预留gpio预留
* /
/ *
*应用特定的gpio预留。仅在开发模式下使用(#if DEVELOPMENT_DEBUG)
IE。
gpio_port_0, pio_pin_1, pid_gpio;//保留P_01作为通用目的I/O
* /
//保留_gpio(UART1_TX,GPIO_UART1_TX_PORT,GPIO_UART1_TX_PIN,PID_UART1_TX);
//设置pio (uart1_rx, gpio1_rx_port, gpio_uart1_rx_pin, pid_uart1_rx);
保留_gpio(i2c_scl,i2c_gpio_port,i2c_scl_pin,pid_i2c_scl);// vp.
预留gpio (i2c_sda, i2c_gpio_port, i2c_sda_pin, pid_i2c_sda);// vp.
gpio_port_1, gpio_pin_1, pid_gpio);
Letail_GPIO(SPI_CS,SPI_GPIO_PORT,SPI_CS_PIN,PID_SPI_EN);
保留_GPIO(SPI_CLK,SPI_GPIO_PORT,SPI_CLK_PIN,PID_SPI_CLK);
保留_GPIO(SPI_DO,SPI_GPIO_PORT,SPI_DO_PIN,PID_SPI_DO);
保留_GPIO(SPI_DI,SPI_GPIO_PORT,SPI_DI_PIN,PID_SPI_DI);
/ *
#if(uart_hw_flow_enabled)
保留_GPIO(UART1_RTS,GPIO_UART1_RTS_PORT,GPIO_UART1_RTS_PIN,PID_UART1_RTSN);
Reserve_gpio (uart1_ctsn, gpio_uart1_cts_port, gpio_uart1_cts_pin, pid_uart1_ctsn);
#万一
# ifdef CFG_PRINTF_UART2
保留_GPIO(UART2_TX,GPIO_UART2_TX_PORT,GPIO_UART2_TX_PIN,PID_UART2_TX);
保留_GPIO(UART2_RX,GPIO_UART2_RX_PORT,GPIO_UART2_RX_PIN,PID_UART1_RX);
#万一
* /
}
# endif / / DEVELOPMENT_DEBUG
/ **
****************************************************************************************
* @brief地图端口引脚
*
*映射UART和SPI端口引脚和GPIO端口
****************************************************************************************
* /
void set_pad_functions(void)//设置GPIO端口功能模式
{
/ *
*配置应用端口。
IE。
gpio_configurepin(gpio_port_0,gpio_pin_1,输出,pid_gpio,false);//将P_01设置为通用输出
* /
GPIO_CONFIGUREPIN(LED_PORT,LED_PIN,输出,PID_GPIO,TRUE);
GPIO_ConfigurePin(I2C_GPIO_PORT, I2C_SCL_PIN, INPUT, PID_I2C_SCL, false);// vp.
gpio_configurepin(i2c_gpio_port,i2c_sda_pin,输入,pid_i2c_sda,true);// vp.
//GPIO_ConfigurePin(GPIO_UART1_TX_PORT, GPIO_UART1_TX_PIN, OUTPUT, PID_UART1_TX, false);
// gpio_configurepin(gpio_uart1_rx_port,gpio_uart1_rx_pin,input_pullup,pid_uart1_rx,false);
gpio_configurepin(spi_gpio_port,spi_cs_pin,输出,pid_spi_en,true);
gpio_configurepin(spi_gpio_port,spi_clk_pin,输出,pid_spi_clk,false);
gpio_configurepin(spi_gpio_port,spi_do_pin,输出,pid_spi_do,false);
gpio_configurepin(spi_gpio_port,spi_di_pin,输入,pid_spi_di,false);
/ *
#if(uart_hw_flow_enabled)
GPIO_ConfigurePin(GPIO_UART1_RTS_PORT, GPIO_UART1_RTS_PIN, OUTPUT, PID_UART1_RTSN, false);
GPIO_ConfigurePin(GPIO_UART1_CTS_PORT, GPIO_UART1_CTS_PIN, INPUT_PULLUP, PID_UART1_CTSN, false);
#endif // uart_hw_flow_enabled.
# ifdef CFG_PRINTF_UART2
GPIO_ConfigurePin(GPIO_UART2_TX_PORT, GPIO_UART2_TX_PIN, OUTPUT, PID_UART2_TX, false);
GPIO_ConfigurePin(GPIO_UART2_RX_PORT, GPIO_UART2_RX_PIN, INPUT, PID_UART2_RX, false);
#万一
* /
}
我也有undef the #undef cfg_development_debug
删除了EXT-SPI闪存的CS引脚中的上拉。
我已经检查了DEV板中的相同项目,仍然是230umps,所以我不认为硬件泄漏导致电流消耗
什么可能是问题.......... ??其他选择是什么
谢谢你!
嗨prasanth,
因此,您已经在没有Flash和您在自定义板上的额外I2C组件的情况下测试了该设备,并且您的FW仍然消耗大约230UA。没有明显的原因,我的意思是,如果设备在拍摄测量时设备是醒目的,则功耗应高于230A。没有在580(内存设备,I2C传感器等)上附有设备,我可以考虑这一点可能会消耗这种权力,也许通过UART引脚泄漏,尽管我无法看到这样的东西在DSP参考设计上,您是否尝试过删除UART连接并检查这是否会降低当前的消耗。
谢谢mt_dialog.
嗨Dilaog团队
感谢你的回复..
您是否尝试过删除UART连接并检查此是否会丢弃当前的消耗?
Q1:如何删除,你的意思是在periph_setup.c中发表评论
Q2:我已经启用了SPI_FLASH_POWER_DOWN,在DSPS_DEVICE项目中,我正在睡觉当前160UA,如果我禁用176UA,我没有看到大差异......
Q3:正如你所说的那样,如果在定制板里有一些其他泄漏,如何测量或找到泄漏
Q4:我使用了一些未使用的GPIO引脚作为测试点,这会不会造成泄漏??
Q5:在RFIOP中,我们已经添加了1.2PF和3.9nh离散组件(在PI网络中,R3 - > 1.2PF,R4 - > Open,R5 - > 3.9nh),这会导致任何问题吗?
Q6:在ext睡眠模式 - I2C GPIO很高,我得到3V,这是一个问题吗?如果是,我可以驾驶低吗?