嗨对话小组
我正在使用我们自己的定制板,电池电量,降压模式,带有DSPS设备项目的外部闪光灯DA14580,添加了I2C驱动器(SDA,带有拉向上寄存器的SCL - 10K连接到VBAT3V),一旦数据发送到掌握BLE设备,DSP设备断开并进入延长睡眠,我已经使用数字万用表(DMM)检查了功耗,
Advertising - 512ua ,
连接,数据XT - 776UA
睡觉 - 322ua,
我已经测试了Murata P2ML 3656 - Murata LBCA2HNZYZ) - ZY DEV板的相同DSP设备项目 - 带DMM和Power Profiler(具有I2C驱动程序,静态数据)
广告 - 240A,
连接,数据XT - 537UA
睡觉 - 110ua,
i have tested same setup with Dialog IOT da14583 also
Advertising - 250ua ,
connection , data xt - 313 - 512 ua
睡觉 - 227 ua,我得到了......
why i am not able to get 1.3u Amps or near ?? Plaese Help me to solve this ??
谢谢对话团队
设备:

Hi prasanth,
The DSPS project as is never falls in permanent sleep, it always keeps on advertising or keeps a connection alive and sleep between connection intervals or advertising intervals. So if at your firmware you set the device in permanent sleep and you have the sleeping feature on then you should see a value close to 1.3uA. Additional consumption might be added by other devices that you have on your board (i suppose that there is an I2C memory on the board, so the additional power consumption might be comming from that device) or by leakages on yoru board. Also the values that you are mentioning i suppose that they are the averaged values that you instruments measures. Please check the Tutorial 4 : configuring sleep mode in the Documents tab in the tutorial section on how to properly measure the power consumption during sleep.
谢谢mt_dialog.
在dsp设备项目,一旦数据TX掌握鳍ished , we have put DSPS Device for 5 min sleep , i am able to see device is not advertising for 5 min , after 5 min only DSPS Device is advertising. so sleep is working properly , isn't ??
i2c driver for Temperature & Humidity sensor , ambient light sensor..
正如您所说的那样,如果硬件问题,为什么在DA14583 IOT套件中也是如此,我得到了相同的,(通过连接万用表,到智能乐队IOT电路板的开/关开关,电池端TI万用表正,CKT结束到Mutimeter COM)
谢谢对话框
嗨对话框
PFA。电力分析器图形
谢谢
Hi prasanth,
From the power profiler i can see that the device is sleeping and waking up so yes, the device should be sleeping, since you have sensors on your board, your sensors consume power additional power, its not only the 580 that consumes power. Regarding the IoT since it also has additional sensors and you wont be able to get about 1.4uA when the device is sleeping, the current consumed is about 11uA.
谢谢mt_dialog.
你好,
您需要切断闪光灯的供应,以降低电流消耗。
嗨Wisilica
感谢你的回复。
Then How DA14583 IOT smart Bond kit will give 11ua , does this also using the "cut off spi supply" configuration.. please give me some more details ...
I2C传感器有10K上拉,这会导致任何问题吗??......如何解决这些......?
谢谢你
嗨对话框
https://support.dialog-semiconductor.com/issues-external-spi-flash
As mentioned in the above post , will secondary bootloader fix this issue (for DA14580) ??
谢谢你。
Hi prasanth,
IOT,在未使用时,在低功耗模式下设置闪光灯(它仍然消耗一些功率,但在它功能完全运行时不得如此,但它还在低功耗模式下设置附加传感器,可以检查SPI_FLASH_POWER_DOWN()spi_flash.c文件中的函数。正如我上面提到的那样,您必须检查系统上的其他模块是否会消耗额外的电源。
关于你上面粘贴的帖子是否会解决您的问题,您是否确定您的自定义设备消耗的额外功率来自外部闪光灯?二级引导程序的原因是,如果您卸下闪光灯,并且您想重置ROM Bootloader没有能够唤醒闪光灯的功能,那就是辅助引导加载程序来加电闪存因此,580将正常启动。因此,从这种额外的功耗从(存储器,传感器等)来看。
谢谢mt_dialog.
嗨对话框
How to use spi_flash_power_down() in DSPS device project (for both DA14580 and DA14583 ), Is there any sample project or Document ??
PFA for the external peripherals in my custom Board , i am using this battery level monitoring also in DSPS ,
我有两个定制板,一个带DA14580BLE,另一个带DA14583,如果SPI闪光灯绘制更多的电源,为什么既有定制板电流消耗几乎相同?与DA14583的定制板应显示较少,对右?
Hi 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()被调用后,但在DSP设备项目中,我没有向SPI Flash做任何读/写,那么我必须从哪个函数调用这个spi_flash_power_down(),所以它会有道理。
比你
Hi prasanth,
我提到了Flash Power Down命令,以便将这种命令发送到Flash,以检查闪存是否会使您在电路板上看到的额外电量。所以你可以才能调用它才能检查消耗是否会下降,如果您没有看到任何效果,那么其他东西正在消耗额外的电流。
谢谢mt_dialog.
即使我们在调用SPI_FLASH_POWER_DOWN()时也没有看到电源下降。不得不通过GPIO来控制闪存的电源,电源关闭闪光灯。
嗨对话框
Q 1 . In Our custom Board DA14580 - with external flash , i have removed all pullup register(10k) , and tested , i can not able to flash / erase SPI memory via SmartSnippets , if i put pullup in CS pin , it is working, But in beacon and smart tag designs i am not seeing any pullup in cs pin ??
谢谢对话框
Hi prasanth,
信标或智能标签上的CS或任何开发套件中没有上拉,如果这是您的问题。一个疯狂的猜测,也许还有其他东西也在推动CS线,这可能是定制板上的电气问题,这导致您的SPI线上的电感噪音?
谢谢mt_dialog.
嗨对话框
谢谢对话框,现在我可以使用没有上拉寄存器的SPI闪存。
In DSPS device project
如果我在“user_periph_setup.c”中调用spi_flash_power_down()中,我闪过这个代码,我的设备在一段时间后没有广告,也在擦除SPI Flash我面临错误,在IoT项目中,SPI_FLASH_POWER_DOWN()在阅读/写入配置参数时调用,但在DSPS如何使用此API时?
谢谢对话框
Hi prasanth,
periph_init()是在设备的每个唤醒中执行的函数,如果在某些时候设备停止或给您错误,您将必须通过调试检查实际原因。无论如何,没有适当的点,你会把闪存的断电,在阅读或写入数据之后与闪存相互作用后,应立即调用函数(如物联网使用它)。现在,如果出于某种原因,闪光灯有源DSP运行时可以调用App_On_Init()回调中的函数,这应该是OK。
谢谢mt_dialog.
嗨对话框
正如您所建议的那样,我正在user_on_init()中调用spi_flash_power_down()
void user_on_init(void)
{
// SPS application initialisation
user_scheduler_init();
default_app_on_init();
da14580_spi_flash_init();
da14580_spi_flash_deinit();
}
void da14580_spi_flash_init(void)
{
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();
}
but still i am getting 235ua during ext sleep
作为Menitone DIN SMART_TAG项目,我已更改user_periph_setup.c
#if DEVELOPMENT_DEBUG
void gpio_reservations(无效)
{
/*
*全球保留GPIO预订
*/
/*
*应用特定GPIO预订。仅在开发模式(#if development_debug)使用
IE。
保留_gpio(descriptiply_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);
//保留_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
保留_gpio(i2c_sda,i2c_gpio_port,i2c_sda_pin,pid_i2c_sda);// vp.
RESERVE_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);
RESERVE_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);
保留_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 Map port pins
*
*映射UART和SPI端口引脚和GPIO端口
****************************************************************************************
*/
void set_pad_functions(void)//设置GPIO端口功能模式
{
/*
*Configure application ports.
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, 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,输出,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,输出,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,输出,pid_uart2_tx,false);
gpio_configurepin(gpio_uart2_rx_port,gpio_uart2_rx_pin,输入,pid_uart2_rx,false);
#endif
*/
}
Also i have undef the #undef CFG_DEVELOPMENT_DEBUG
删除了EXT-SPI闪存的CS引脚中的上拉。
i have checked the same project in dev board , still 230uAmps , so i dont think hardware leakage is causing the current consumption
什么可能是问题.......... ??其他选择是什么
谢谢
Hi prasanth,
所以你有测试设备基本上没有the flash and the additional I2C components that you have on your custom board and your fw still consumes about 230uA. There is no obvious reason for that, i mean, if the device is awake when you are taking the measurements the power consumption should be much higher than 230uA. With no devices attached on the 580 (memory devices, I2C sensors, etc) the only way i can think of that could consume this kind of power is perhaps somekind of leakage through the UART pins, although i am not able to see anything like this on the DSPS reference design, have you tried remove the UART connection and check if this drops your current consumption.
谢谢mt_dialog.
嗨Dilaog团队
感谢你的回复。.
have you tried remove the UART connection and check if this drops your current consumption ??
Q1:如何删除,你的意思是在periph_setup.c中发表评论
Q2: i have enabled spi_flash_power_down , in DSPS_DEVICE project , i am getting sleep current 160ua , if i disabled 176ua , i am not seeing big differences...
Q3:正如你所说的那样,如果在定制板里有一些其他泄漏,如何测量或找到泄漏
Q4:我用一些未使用的GPIO引脚作为测试点,这会导致泄漏吗?
Q5:在RFIOP中,我们已经添加了1.2PF和3.9nh离散组件(在PI网络中,R3 - > 1.2PF,R4 - > Open,R5 - > 3.9nh),这会导致任何问题吗?
Q6:在ext睡眠模式 - I2C GPIO很高,我得到3V,这是一个问题吗?如果是,我可以驾驶低吗?