Hi Dialog Team
我正在使用我们自己的定制板,电池电量,降压模式,带有DSPS设备项目的外部闪光灯DA14580,添加了I2C驱动器(SDA,带有拉向上寄存器的SCL - 10K连接到VBAT3V),一旦数据发送到掌握BLE设备,DSP设备断开并进入延长睡眠,我已经使用数字万用表(DMM)检查了功耗,
广告 - 512UA,
connection , data xt - 776ua
睡觉 - 322ua,
我已经测试了Murata P2ML 3656 - Murata LBCA2HNZYZ) - ZY DEV板的相同DSP设备项目 - 带DMM和Power Profiler(具有I2C驱动程序,静态数据)
Advertising - 240ua ,
连接,数据XT - 537UA
睡觉 - 110ua,
我也测试了与对话框DA14583相同的设置
广告 - 250ua,
连接,数据XT - 313 - 512 UA
Sleep - 227 ua , i am getting...
为什么我无法获得1.3u安培或附近?Plaese帮助我解决这个问题?
谢谢对话团队
设备:

嗨prasanth,
DSP项目的永久性睡眠永远不会落在永久性睡眠中,它始终继续广告或保持连接在连接间隔或广告间隔之间存在并睡眠。因此,如果在您的固件中,您将在永久睡眠中设置设备,并且您可以在睡眠功能上进行休眠功能,然后您应该看到靠近1.3ua的值。您在电路板上的其他设备可以添加额外的消耗(我想电路板上有一个I2C内存,因此额外的功耗可能来自该设备)或通过yoru板上的泄漏。此外,您提到的值我认为它们是仪器测量的平均值。请检查教程4:在“文档”选项卡中配置睡眠模式在“睡眠期间”如何正确测量功耗的文档中。
Thanks MT_dialog
在DSP设备项目项目中,一旦数据TX到掌握完成,我们就会让DSP设备睡眠5分钟,我能够看到设备不广告5分钟,只有DSP设备才能广告。所以睡眠正常工作,不是吗?
温度和湿度传感器的I2C驱动器,环境光传感器。
As you said if Hardware issue , why in DA14583 IOT kit also i am getting the same , (By connecting multimeter , to the on / off switch of Smart band IOT BLE board , battery end ti multimeter positive , ckt end to mutimeter com)
谢谢对话框
Hi Dialog
PFA。电力分析器图形
谢谢
嗨prasanth,
从电力分布器来看,我可以看到设备睡觉并醒来所以是的,设备应该睡觉,因为你的电路板上有传感器,你的传感器消耗电源额外的电源,它不仅是消耗电力的580。关于IOT,因为它还具有额外的传感器,并且当设备睡眠时,您无法获得大约1.4UA,所以消耗的电流约为11ua。
Thanks MT_dialog
你好,
您需要切断闪光灯的供应,以降低电流消耗。
嗨Wisilica
感谢你的回复。
那么DA14583 IOT智能债券套件如何给出11uA,这也使用“切断SPI供应”配置..请给我一些更多细节......
I2C传感器有10K上拉,这会导致任何问题吗??......如何解决这些......?
thank you
Hi Dialog
https://support.dialog-semicondiondiondiondum/issues-external-pi-flash.
如上文帖子所示,辅助引导程序将修复此问题(对于DA14580)??
谢谢.
嗨prasanth,
The IoT, sets the flash in low power mode when its not used (it still consumes some power but not as much as it had when it was fully functional), it also sets the additional sensors in low power mode, you can check the spi_flash_power_down() function in the spi_flash.c file. As i ve mentioned above you will have to check if the other modules that you have on your system consume additional power.
关于你上面粘贴的帖子是否会解决您的问题,您是否确定您的自定义设备消耗的额外功率来自外部闪光灯?二级引导程序的原因是,如果您卸下闪光灯,并且您想重置ROM Bootloader没有能够唤醒闪光灯的功能,那就是辅助引导加载程序来加电闪存因此,580将正常启动。因此,从这种额外的功耗从(存储器,传感器等)来看。
Thanks MT_dialog
Hi Dialog
如何在DSP设备项目中使用SPI_FLASH_POWER_DOWN()(对于DA14580和DA14583),是否有任何示例项目或文档?
PFA在我的定制板中的外部外围设备,我也在DSP中使用这种电池电平监控,
我有两个定制板,一个带DA14580BLE,另一个带DA14583,如果SPI闪光灯绘制更多的电源,为什么既有定制板电流消耗几乎相同?与DA14583的定制板应显示较少,对右?
嗨prasanth,
Since the DSPS example doens't use a flash there is no example there, but reference designs developed with flash have this feature, you just invoke the function i mentioned above in order to powerdown the flash, like the beacon, the implementation of the function is located in the spi_flash.c driver.
我无法预见为什么您的电路板上有额外的电流,因为这取决于一个相当大量的因素,您必须将一个逐一检查一个增加功耗,检查其他设备。583有一个嵌入式闪光灯,你提到580有一个外部闪光灯,所以我想如果你不向闪光灯供电,你将最终获得类似的功耗,因为我之前提到了583上的闪光灯需要如果这是问题,也可以断电。
Thanks MT_dialog
Hi Dialog
https://wenku.baidu.com/view/20871b8127d3240c8547efd2.html
i have followed above link to use spi_flash_power_down() in DSPS_Device, but not working,...
从信标项目中,在每次读/写操作spi_flash_power_down()被调用后,但在DSP设备项目中,我没有向SPI Flash做任何读/写,那么我必须从哪个函数调用这个spi_flash_power_down(),所以它会有道理。
Than you
嗨prasanth,
I ve mentioned the flash power down command in order to send this kind of command to the flash in order to check if the flash its consuming the extra power that you see on your board. So you can just invoke it in order to check if the consumption will go down, if you dont see any effect then something else is consuming that extra current.
Thanks MT_dialog
即使我们在调用SPI_FLASH_POWER_DOWN()时也没有看到电源下降。不得不通过GPIO来控制闪存的电源,电源关闭闪光灯。
Hi Dialog
Q 1。在我们的自定义板DA14580 - 使用外部闪存时,我已删除所有上拉寄存器(10k)并测试,我无法通过SmartSnippet闪存/擦除SPI内存,如果我在CS引脚中提出上床,它正在工作,但在信标和智能标签设计我没有看到CS引脚的任何上床?
谢谢对话框
嗨prasanth,
信标或智能标签上的CS或任何开发套件中没有上拉,如果这是您的问题。一个疯狂的猜测,也许还有其他东西也在推动CS线,这可能是定制板上的电气问题,这导致您的SPI线上的电感噪音?
Thanks MT_dialog
Hi Dialog
thank you Dialog , Now i can able to use the SPI flash without pullup register.
在DSPS设备项目中
if i invoke spi_flash_power_down() inside periph_init() in "user_periph_setup.c" , i flashed this code , my device is not advertising after some time , also after this while erasing spi flash i am facing errors , In IOT project , spi_flash_power_down() invoked while reading/writing config parameters , but in DSPS how to use this API ?
谢谢对话框
嗨prasanth,
The periph_init() is a function that is executed in every wakeup of the device, if after some point the device stalls or gives you errors you will have to check the actual reason via debugging. Anyway, there is no proper point that you will place the power down of the flash, the function should be invoked right after interfacing with the flash for example right after reading or writing data (as the IoT uses it). Now in case for some reason the flash is powered when the DSPS runs you can invoke the function in the app_on_init() callback, that should be ok.
Thanks MT_dialog
Hi Dialog
As you suggested , i am invoking the spi_flash_power_down() , in user_on_init()
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 default parameters are used.
// Alternatively, an error can be asserted here.
spi_flash_init(spi_flash_default_size,spi_flash_default_page);
}
}
void da14580_spi_flash_deinit(void)
{
spi_flash_power_down();
}
但我仍在休眠期间获得235ua
As menitone din smart_tag project , i have changed user_periph_setup.c
#if development_debug.
void gpio_reservations(无效)
{
/ *
*全球保留GPIO预订
* /
/ *
*应用特定GPIO预订。仅在开发模式(#if development_debug)使用
i.e.
保留_gpio(descriptiply_name,gpio_port_0,gpio_pin_1,pid_gpio);//保留P_01作为通用用途I / O.
* /
//RESERVE_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);
保留_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(LED_PORT,GPIO_PORT_1,GPIO_PIN_1,PID_GPIO);
Letail_GPIO(SPI_CS,SPI_GPIO_PORT,SPI_CS_PIN,PID_SPI_EN);
RESERVE_GPIO( SPI_CLK, SPI_GPIO_PORT, SPI_CLK_PIN, PID_SPI_CLK);
保留_GPIO(SPI_DO,SPI_GPIO_PORT,SPI_DO_PIN,PID_SPI_DO);
RESERVE_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);
保留_GPIO(UART1_CTS,GPIO_UART1_CTS_PORT,GPIO_UART1_CTS_PIN,PID_UART1_CTSN);
#万一
#ifdef cfg_printf_uart2.
RESERVE_GPIO( UART2_TX, GPIO_UART2_TX_PORT, GPIO_UART2_TX_PIN, PID_UART2_TX);
RESERVE_GPIO( UART2_RX, GPIO_UART2_RX_PORT, GPIO_UART2_RX_PIN, PID_UART1_RX);
#万一
* /
}
#endif // development_debug.
/ **
****************************************************************************************
* @brief地图端口引脚
*
* The Uart and SPI port pins and GPIO ports are mapped
****************************************************************************************
* /
void set_pad_functions(void) // set gpio port function mode
{
/ *
*配置应用程序端口。
i.e.
GPIO_ConfigurePin( GPIO_PORT_0, GPIO_PIN_1, OUTPUT, PID_GPIO, false ); // Set P_01 as Generic purpose Output
* /
GPIO_CONFIGUREPIN(LED_PORT,LED_PIN,输出,PID_GPIO,TRUE);
gpio_configurepin(i2c_gpio_port,i2c_scl_pin,输入,pid_i2c_scl,false);// vp.
GPIO_ConfigurePin(I2C_GPIO_PORT, I2C_SDA_PIN, INPUT, 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, OUTPUT, PID_SPI_EN, true );
GPIO_ConfigurePin( SPI_GPIO_PORT, SPI_CLK_PIN, OUTPUT, 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,输出,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);
#万一
* /
}
我也有undef the #undef cfg_development_debug
Removed the pullup in cs pin of EXT-SPI flash .
我已经检查了DEV板中的相同项目,仍然是230umps,所以我不认为硬件泄漏导致电流消耗
what could be the problem..........??what are the other options
谢谢
嗨prasanth,
因此,您已经在没有Flash和您在自定义板上的额外I2C组件的情况下测试了该设备,并且您的FW仍然消耗大约230UA。没有明显的原因,我的意思是,如果设备在拍摄测量时设备是醒目的,则功耗应高于230A。没有在580(内存设备,I2C传感器等)上附有设备,我可以考虑这一点可能会消耗这种权力,也许通过UART引脚泄漏,尽管我无法看到这样的东西在DSP参考设计上,您是否尝试过删除UART连接并检查这是否会降低当前的消耗。
Thanks MT_dialog
嗨Dilaog团队
感谢你的回复..
您是否尝试过删除UART连接并检查此是否会丢弃当前的消耗?
Q1:如何删除,你的意思是在periph评论_setup.c ??
Q2:我已经启用了SPI_FLASH_POWER_DOWN,在DSPS_DEVICE项目中,我正在睡觉当前160UA,如果我禁用176UA,我没有看到大差异......
Q3: As you said if some other leakage is there in custom board , how to measure or find the leakage
Q4:我用一些未使用的GPIO引脚作为测试点,这会导致泄漏吗?
Q5 : in RFIOp for matching we have added 1.2pf and 3.9nh discrete components (in the PI network , R3 -> 1.2pf , R4 -> open , R5 -> 3.9nh) , will this cause any issues ??
Q6 : In ext sleep mode - i2c gpio are high , i am getting 3v , was it an issue ? if yes can i drive low ??