嗨对话小组
I am using our own custom board , Battery operated , Buck Mode , Da14580 with external flash with DSPS Device Project , added i2c driver ( SDA , SCL with pull up register - 10K connected to VBAT3v), Once data send to Master BLE device , DSPS Device disconnect and enters into extended sleep , I have checked the power consumption using Digital Multimeter(DMM) ,
Advertising - 512ua ,
连接,数据XT - 776UA
Sleep - 322ua ,
我已经测试了相同的需求方与日本村田公司设备项目P2ML 3656 - Murata LBCA2HNZYZ) - Type ZY Dev Board , with DMM and power profiler (with out i2c driver , static data)
广告 - 240A,
connection , data xt - 537ua
Sleep - 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 ??
Thank you Dialog Team

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)
Thank you Dialog
嗨对话框
PFA. power profiler graph
Thank you
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.
Hi,
You need to cut off supply to your flash to reduce the current consumption.
Hi Wisilica
Thank you for your reply.
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 sensor have 10k pullup , will this cause any issue ?? ... How to resolve these ...?
谢谢你
嗨对话框
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文件中的函数。正如我上面提到的那样,您必须检查系统上的其他模块是否会消耗额外的电源。
Regarding if the post that you ve pasted above will solve your problem, are you sure that the extra power that your custom device consumes comes from the external flash ? The reason of the secondary bootloader is that, if you power down your flash, and you would like to reset the device the ROM bootloader doesn't have the ability to wake up the flash, thats where the secondary bootloader comes to power up the flash so that the 580 will boot normally. So check from where this extra power consumption is comming from (memories, sensors, etc).
谢谢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 ,
I have two custom Boards , One with DA14580BLE , another one with DA14583 , if SPI flash drawing more power , why both custom boards current consumption almost same ??custom Board with DA14583 should show less , Right?
Hi prasanth,
由于DSP示例不使用闪光灯,因此使用Flash开发的参考设计具有此功能,只需调用上面提到的功能,以便将闪光灯淘压,如信标,实现功能位于SPI_FLASH.C驱动程序中。
I am not able to foresee why there is extra current on your board since that depends in a quite large amount of factors, you will have to check one by one what increases your power consumption, check the additional devices. The 583 has an embedded flash and you mentioned that 580 has an external flash, so i suppose that if you dont power the flash down you are going to end up with similar power consumption, as i have previously mentioned the flash on the 583 needs to be powered down as well, if that is the question.
谢谢mt_dialog.
嗨对话框
https://wenku.baidu.com/view/20871b8127d3240c8547fd2.html.
我跟随以上链接以在dsps_device中使用spi_flash_power_down(),但不起作用...
From Beacon project , after every read / write operation spi_flash_power_down() got invoked , but in DSPS Device project i am not doing any read/write to SPI Flash, so exactly from which function i have to invoke this spi_flash_power_down() , so it will make sense.
比你
Hi prasanth,
我提到了Flash Power Down命令,以便将这种命令发送到Flash,以检查闪存是否会使您在电路板上看到的额外电量。所以你可以才能调用它才能检查消耗是否会下降,如果您没有看到任何效果,那么其他东西正在消耗额外的电流。
谢谢mt_dialog.
Even we did not see the power coming down when the spi_flash_power_down() was invoked. Had to control the supply to flash via gpio, and power off flash.
嗨对话框
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 ??
Thank you Dialog
Hi prasanth,
There is no pullup at the CS on the beacon or the Smart Tag or at any of the dev kits, if that is your question. A wild guess, perhaps something else is also driving the CS line, an electrical issue on the custom board perhaps, that results in inducted noise on your SPI lines ?
谢谢mt_dialog.
嗨对话框
谢谢对话框,现在我可以使用没有上拉寄存器的SPI闪存。
In DSPS device project
如果我在“user_periph_setup.c”中调用spi_flash_power_down()中,我闪过这个代码,我的设备在一段时间后没有广告,也在擦除SPI Flash我面临错误,在IoT项目中,SPI_FLASH_POWER_DOWN()在阅读/写入配置参数时调用,但在DSPS如何使用此API时?
Thank you Dialog
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)
{
// The device was not identified.
//使用默认参数。
//可选地,这里可以断言错误。
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(void)
{
/*
*Globally reserved GPIOs reservation
*/
/*
*Application specific GPIOs reservation. Used only in Development mode (#if DEVELOPMENT_DEBUG)
IE。
RESERVE_GPIO(DESCRIPTIVE_NAME, GPIO_PORT_0, GPIO_PIN_1, PID_GPIO); //Reserve P_01 as Generic Purpose 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
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);
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 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, 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
*/
}
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
什么可能是问题.......... ??其他选择是什么
Thank you
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.
Hi Dilaog team
Thank you for your reply..
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: i have used some unused GPIO pin as test points , will this cause any leakage ??
Q5:在RFIOP中,我们已经添加了1.2PF和3.9nh离散组件(在PI网络中,R3 - > 1.2PF,R4 - > Open,R5 - > 3.9nh),这会导致任何问题吗?
Q6:在ext睡眠模式 - I2C GPIO很高,我得到3V,这是一个问题吗?如果是,我可以驾驶低吗?