嗨对话小组
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) ,
广告 - 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 ,
我也测试了与对话框DA14583相同的设置
广告 - 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

嗨prasanth,
DSP项目的永久性睡眠永远不会落在永久性睡眠中,它始终继续广告或保持连接在连接间隔或广告间隔之间存在并睡眠。因此,如果在您的固件中,您将在永久睡眠中设置设备,并且您可以在睡眠功能上进行休眠功能,然后您应该看到靠近1.3ua的值。您在电路板上的其他设备可以添加额外的消耗(我想电路板上有一个I2C内存,因此额外的功耗可能来自该设备)或通过yoru板上的泄漏。此外,您提到的值我认为它们是仪器测量的平均值。请检查教程4:在“文档”选项卡中配置睡眠模式在“睡眠期间”如何正确测量功耗的文档中。
谢谢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驱动器,环境光传感器。
正如您所说的那样,如果硬件问题,为什么在DA14583 IOT套件中也是如此,我得到了相同的,(通过连接万用表,到智能乐队IOT电路板的开/关开关,电池端TI万用表正,CKT结束到Mutimeter COM)
Thank you Dialog
嗨对话框
PFA. power profiler graph
Thank you
嗨prasanth,
从电力分布器来看,我可以看到设备睡觉并醒来所以是的,设备应该睡觉,因为你的电路板上有传感器,你的传感器消耗电源额外的电源,它不仅是消耗电力的580。关于IOT,因为它还具有额外的传感器,并且当设备睡眠时,您无法获得大约1.4UA,所以消耗的电流约为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.
那么DA14583 IOT智能债券套件如何给出11uA,这也使用“切断SPI供应”配置..请给我一些更多细节......
i2c sensor have 10k pullup , will this cause any issue ?? ... How to resolve these ...?
谢谢你
嗨对话框
https://support.dialog-semicondiondiondiondum/issues-external-pi-flash.
如上文帖子所示,辅助引导程序将修复此问题(对于DA14580)??
谢谢你。
嗨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.
嗨对话框
如何在DSP设备项目中使用SPI_FLASH_POWER_DOWN()(对于DA14580和DA14583),是否有任何示例项目或文档?
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?
嗨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.
比你
嗨prasanth,
我提到了Flash Power Down命令,以便将这种命令发送到Flash,以检查闪存是否会使您在电路板上看到的额外电量。所以你可以才能调用它才能检查消耗是否会下降,如果您没有看到任何效果,那么其他东西正在消耗额外的电流。
谢谢mt_dialog.
即使我们没有看到权力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。在我们的自定义板DA14580 - 使用外部闪存时,我已删除所有上拉寄存器(10k)并测试,我无法通过SmartSnippet闪存/擦除SPI内存,如果我在CS引脚中提出上床,它正在工作,但在信标和智能标签设计我没有看到CS引脚的任何上床?
Thank you Dialog
嗨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闪存。
在DSPS设备项目中
如果我在“user_periph_setup.c”中调用spi_flash_power_down()中,我闪过这个代码,我的设备在一段时间后没有广告,也在擦除SPI Flash我面临错误,在IoT项目中,SPI_FLASH_POWER_DOWN()在阅读/写入配置参数时调用,但在DSPS如何使用此API时?
Thank you Dialog
嗨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();
}
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();
}
但我仍在休眠期间获得235ua
作为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);
保留_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);
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_CTS, 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);
#万一
* /
}
#万一//DEVELOPMENT_DEBUG
/ **
****************************************************************************************
* @brief地图端口引脚
*
*映射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,输出,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,所以我不认为硬件泄漏导致电流消耗
什么可能是问题.......... ??其他选择是什么
Thank you
嗨prasanth,
因此,您已经在没有Flash和您在自定义板上的额外I2C组件的情况下测试了该设备,并且您的FW仍然消耗大约230UA。没有明显的原因,我的意思是,如果设备在拍摄测量时设备是醒目的,则功耗应高于230A。没有在580(内存设备,I2C传感器等)上附有设备,我可以考虑这一点可能会消耗这种权力,也许通过UART引脚泄漏,尽管我无法看到这样的东西在DSP参考设计上,您是否尝试过删除UART连接并检查这是否会降低当前的消耗。
谢谢mt_dialog.
Hi Dilaog team
感谢你的回复..
您是否尝试过删除UART连接并检查此是否会丢弃当前的消耗?
Q1:如何删除,你的意思是在periph_setup.c中发表评论
Q2:我已经启用了SPI_FLASH_POWER_DOWN,在DSPS_DEVICE项目中,我正在睡觉当前160UA,如果我禁用176UA,我没有看到大差异......
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,这是一个问题吗?如果是,我可以驾驶低吗?