嗨对话小组
我使用自己的定制电路板,电池供电,降压模式,Da14580与DSPS设备项目外置闪光灯,加入I2C驱动(SDA,SCL与拉寄存器 - 10K连接到VBAT3v),一旦数据发送到主BLE装置,DSPS设备断开并进入延长休眠,我已经检查用数字万用表(DMM)的电力消耗,
广告- 512ua,
连接,数据XT - 776UA
睡眠 - 322ua,
我已经测试了相同的DSPS设备项目,村田P2ML 3656 - 村田LBCA2HNZYZ) - ZY型开发板,用数字万用表和功率分析器(用了I2C驱动,静态数据)
广告 - 240A,
连接,数据xt的 - 537ua
睡眠 - 110ua,
我也用Dialog IOT da14583测试了相同的设置
广告- 250ua,
连接,数据XT - 313 - 512 UA
睡觉 - 227 ua,我得到了......
为什么我无法获得1.3u安培或附近?Plaese帮助我解决这个问题?
谢谢对话框团队
设备:

嗨prasanth,
DSPS项目永远不会陷入永久的睡眠,它总是保持广告或保持连接,并在连接间隔或广告间隔之间睡眠。所以,如果你在固件上设置设备处于永久休眠状态,并且设置了休眠功能,那么你应该会看到一个接近1.3uA的值。额外的功耗可能是由您的板上的其他设备(我假设板上有一个I2C内存,所以额外的功耗可能来自该设备)或泄漏在您的板上。你提到的这些值,我认为它们是你仪器测量的平均值。关于如何正确测量睡眠期间的功耗,请查看教程4:配置睡眠模式的文档选项卡。
谢谢mt_dialog.
在DSP设备项目项目中,一旦数据TX到掌握完成,我们就会让DSP设备睡眠5分钟,我能够看到设备不广告5分钟,只有DSP设备才能广告。所以睡眠正常工作,不是吗?
i2c驱动用于温湿度传感器,环境光传感器。
正如您所说的那样,如果硬件问题,为什么在DA14583 IOT套件中也是如此,我得到了相同的,(通过连接万用表,到智能乐队IOT电路板的开/关开关,电池端TI万用表正,CKT结束到Mutimeter COM)
谢谢对话
嗨对话框
PFA。功率分析器图
谢谢
嗨prasanth,
从功率分析器我可以看到设备在睡觉和醒来,所以是的,设备应该在睡觉,因为你的板上有传感器,你的传感器消耗额外的功率,不仅580消耗功率。至于物联网,因为它也有额外的传感器,当设备休眠时,你无法获得约1.4uA的电流,消耗约11uA。
谢谢mt_dialog.
你好,
你需要切断电源,以你的闪存,以减少电流消耗。
嗨Wisilica
感谢你的回复。
那么DA14583物联网智能Bond套件将如何提供11ua,也使用“cut off spi supply”配置。请告诉我更多的细节。
I2C传感器有无10K上拉,这会带来什么问题?......如何解决这些...?
谢谢你
嗨对话框
https://support.dialog-semiconductor.com/issues-external-spi-flash
如上所述,辅助引导加载程序会修复这个问题吗(DA14580) ??
谢谢你。
嗨prasanth,
IOT,在未使用时,在低功耗模式下设置闪光灯(它仍然消耗一些功率,但在它功能完全运行时不得如此,但它还在低功耗模式下设置附加传感器,可以检查SPI_FLASH_POWER_DOWN()spi_flash.c文件中的函数。正如我上面提到的那样,您必须检查系统上的其他模块是否会消耗额外的电源。
至于如果你已经将上面的解决您的问题贴,你确定,额外的动力,您的自定义设备消耗来自外部闪光灯的帖子?二级引导加载程序的原因是,如果你关机的闪光灯,以及你想重置设备的ROM引导程序不必唤醒闪光灯的能力,多数民众赞成在二级引导程序上台了闪光灯从而使580将正常启动。所以从这个地方消耗更多的电量是从(存储器,传感器等),检查正在添加。
谢谢mt_dialog.
嗨对话框
如何在DSPS设备项目(DA14580和DA14583)中使用spi_flash_power_down(),是否有样本项目或文档?
PFA在我的定制板中的外部外围设备,我也在DSP中使用这种电池电平监控,
我有两个自定义板,一个有DA14580BLE,另一个与DA14583,如果SPI闪存吸引更多的权力,为什么这两个定义主板的电流消耗几乎相同??与DA14583定制董事会应显示较少的,对不对?
嗨prasanth,
由于DSP示例不使用闪光灯,因此使用Flash开发的参考设计具有此功能,只需调用上面提到的功能,以便将闪光灯淘压,如信标,实现功能位于SPI_FLASH.C驱动程序中。
我不能预见为什么会出现在你的主板额外的电流,因为这取决于在一个相当大的量的因素,你将不得不逐一检查什么增加你的功耗,检查其他设备。583有一个嵌入式闪存和你提到580具有外接闪光灯,所以我想,如果你不功率的闪光灯下你会用类似的功耗就结了,正如我以前提到的583只需要闪光灯断电为好,如果这是个问题。
谢谢mt_dialog.
嗨对话框
https://wenku.baidu.com/view/20871b8127d3240c8547fd2.html.
我跟随以上链接以在dsps_device中使用spi_flash_power_down(),但不起作用...
从灯塔项目,每一个读/写操作spi_flash_power_down后()得到调用,而是DSPS设备项目我没有做任何的读/写SPI闪存,那么究竟由哪个函数我必须调用此spi_flash_power_down(),所以它会有道理。
比你
嗨prasanth,
我提到了Flash Power Down命令,以便将这种命令发送到Flash,以检查闪存是否会使您在电路板上看到的额外电量。所以你可以才能调用它才能检查消耗是否会下降,如果您没有看到任何效果,那么其他东西正在消耗额外的电流。
谢谢mt_dialog.
即使我们没有看到电源下来被调用的spi_flash_power_down()的时候。不得不控制关闭闪光供应闪烁经由GPIO,和功率。
嗨对话框
问1。在我们的定制板DA14580——与外部闪光灯,我已经删除了所有引体向上(10 k),注册和测试,我能不能通过SmartSnippets flash /擦除SPI内存,如果我把在CS销引体向上,这是工作,但在灯塔和智能标记的设计我没有看到任何在CS销拔起吗? ?
谢谢对话
嗨prasanth,
有一个在CS上拉不上的信标或智能标记或在任何一个开发套件的,如果这是你的问题。胡乱猜测,也许是别的东西也推动了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()
void user_on_init(void)
{
// 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。端口= SPI_EN_GPIO_PORT;
cs_pad_param.pin = spi_en_gpio_pin;
man_dev_id = spi_flash_enable (cs_pad_param。港口,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);
}
}
空隙da14580_spi_flash_deinit(无效)
{
spi_flash_power_down();
}
但我在下次睡觉时仍然会得到235ua
作为Menitone DIN SMART_TAG项目,我已更改user_periph_setup.c
#如果DEVELOPMENT_DEBUG
空隙GPIO_reservations(无效)
{
/*
*在全球范围内保留的GPIO预订
*/
/*
*应用程序特定的GPIO预订。仅在开发模式(#如果DEVELOPMENT_DEBUG)
IE。
RESERVE_GPIO(DESCRIPTIVE_NAME,GPIO_PORT_0,GPIO_PIN_1,PID_GPIO);//储备P_01作为一般用途的I / O
*/
//保留_GPIO(UART1_TX,GPIO_UART1_TX_PORT,GPIO_UART1_TX_PIN,PID_UART1_TX);
// RESERVE_GPIO(UART1_RX,GPIO_UART1_RX_PORT,GPIO_UART1_RX_PIN,PID_UART1_RX);
Reserve_gpio (i2c_scl, i2c_gpio_port, i2c_scl_pin, pid_i2c_scl);// vp.
RESERVE_GPIO(I2C_SDA,I2C_GPIO_PORT,I2C_SDA_PIN,PID_I2C_SDA);// vp.
保留_GPIO(LED_PORT,GPIO_PORT_1,GPIO_PIN_1,PID_GPIO);
Reserve_gpio (spi_cs, spi_gpio_port, spi_cs_pin, pid_spi_en);
保留_GPIO(SPI_CLK,SPI_GPIO_PORT,SPI_CLK_PIN,PID_SPI_CLK);
spe_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)
Reserve_gpio (uart1_rts, gpio_uart1_rts_port, gpio_uart1_rts_pin, pid_uart1_rtsn);
RESERVE_GPIO(UART1_CTS,GPIO_UART1_CTS_PORT,GPIO_UART1_CTS_PIN,PID_UART1_CTSN);
# endif
#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
*/
}
#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, OUTPUT, PID_GPIO, true);
gpio_configurepin(i2c_gpio_port,i2c_scl_pin,输入,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, OUTPUT, PID_SPI_DO, false);
GPIO_ConfigurePin(SPI_GPIO_PORT, SPI_DI_PIN, INPUT, 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);
# endif
*/
}
我也有undef #undef CFG_DEVELOPMENT_DEBUG
删除了EXT-SPI闪存的CS引脚中的上拉。
我在开发板上检查了相同的项目,仍然是230uAmps,所以我不认为硬件泄漏导致了电流消耗
什么可能是问题.......... ??其他选择是什么
谢谢
嗨prasanth,
所以你已经测试了设备,基本上没有闪存和额外的I2C组件,你有你的定制板和你的fw仍然消耗约230uA。没有明显的原因,我的意思是,如果设备是清醒的时候,你正在测量的功耗应该远远高于230uA。没有设备连接在580(存储设备,I2C传感器等),我能想到的唯一方法可能是通过UART引脚的某种泄漏,虽然我不能看到任何类似的DSPS参考设计,您是否尝试删除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,这是一个问题吗?如果是,我可以驾驶低吗?