如何调试STM32L433漏电流

2019-07-14 17:20发布

我有一块带STM32L433的电路板,在STOP 2模式下有大约320uA的基线电流消耗。只有具有32kHz晶振的LSE才有效。该板具有独立的模拟Vdda电源,在停止模式下被禁用。(与地面相连)。在禁用Vdda之前,ADC,DAC和OPAMP禁用,其引脚进入OD低电平模式。配置使用STM32CubeMX软件完成。任何想法如何调试这个?我断开并测量了几乎每个外围设备,看看是什么吸引电流,但似乎STM32L433是罪魁祸首。我用示波器测量电流,使用与电池串联的2欧姆电阻。LDO可能负责20uA,但是还有300uA却不明。我只用STM32L433和LDO LP5907-3.0以及几个去耦电容焊接了另一块电路板。同样的问题。这是我用来设置GPIO的最小代码
  1. <font size="4">GPIO_InitTypeDef GPIO_InitStruct;

  2. /* GPIO Ports Clock Enable */
  3. __HAL_RCC_GPIOC_CLK_ENABLE()
  4. ;
  5. __HAL_RCC_GPIOH_CLK_ENABLE()
  6. ;
  7. __HAL_RCC_GPIOA_CLK_ENABLE()
  8. ;
  9. __HAL_RCC_GPIOB_CLK_ENABLE()
  10. ;

  11. GPIO_InitStruct.Pin = 0xFFFFFFFF;
  12. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  13. GPIO_InitStruct.Pull = GPIO_NOPULL;
  14. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  15. HAL_GPIO_WritePin(GPIOA, GPIO_InitStruct.Pin, GPIO_PIN_SET);

  16. GPIO_InitStruct.Pin = 0xFFFFFFFF;
  17. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  18. GPIO_InitStruct.Pull = GPIO_NOPULL;
  19. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  20. HAL_GPIO_WritePin(GPIOB, GPIO_InitStruct.Pin, GPIO_PIN_SET);

  21. GPIO_InitStruct.Pin = 0xFFFFFFFF;
  22. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  23. GPIO_InitStruct.Pull = GPIO_NOPULL;
  24. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  25. HAL_GPIO_WritePin(GPIOC, GPIO_InitStruct.Pin, GPIO_PIN_SET);

  26. GPIO_InitStruct.Pin = 0xFFFFFFFF;
  27. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  28. GPIO_InitStruct.Pull = GPIO_NOPULL;
  29. HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
  30. HAL_GPIO_WritePin(GPIOH, GPIO_InitStruct.Pin, GPIO_PIN_SET);

  31. //BOOT0 PIN
  32. GPIO_InitStruct.Pin = GPIO_PIN_3;
  33. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  34. GPIO_InitStruct.Pull = GPIO_NOPULL;
  35. HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);


  36. HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI);</font>
复制代码当USB输入处于低功耗模式时,USB DM引脚会浮动。这导致了200uA当前的卓尔精灵。向外拉这个引脚可以移除200uA。现在我正试图在固件中找到解决方法。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。