2024-01-26 09:40 AM
Hello Everyone, I'm driving the WS2812 RGB-LED using TIM16 CH1.
I have a very similar behavior as in this_post . The RGB works well just until MX_LoRaWAN_Process(void) then it doesn't work. I tried his solution but it didn't work(although I suspect the SYSTICK is not working).
The Waveform looks like this:
The solution in the post(using the following lines) didn't work for me:
/* Wake up from STOP2 on button press */ SystemClock_Config(); HAL_ResumeTick(); MX_TIM16_Init();
I also printed out the content of the LED_DATA_ARRAY(which contains the color data) and it seems fine.
The Mode is STOP-Mode2. What would be the problem here?
Thank you
Amir
2024-03-04 10:27 PM
Hello @AElgh
Are you disabling the Timer clock before entering the STOP Mode. If so, try to keep it enabled.
Best Regards.
STTwo-32
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-06-30 09:54 AM
Hi
This issue comes when I deactivate the Debugger(DEBUGGER_ENABLED --> 0).
When DEBUGGER_ENABLED 1, everything works fine but as i need lower power consumption i want to deactivate it.
In an5406 it mentions that "The debug mode enables the SWD pins, even when the MCU goes in low-power mode."
however, neither PB8 nor DMA has anything to do with the serial-wire-debugging feature.
I'm trying to understand how to shut the debugger without interrupting the Functionality.
2024-07-03 08:20 AM
In AN5406 Page 30 (9.3 Low-power functions), it mentioned "when the DMA is used to
print data to the console, the system must not enter a low-power mode below Sleep mode because the DMA
clock is switched off in Stop mode"
I put this code just before it entered the Stop-Mode2 Sleep but it doesn't seem to succeed:
void UTIL_SEQ_Idle(void)
{
/* USER CODE BEGIN UTIL_SEQ_Idle_1 */
if(!__HAL_RCC_DMA2_IS_CLK_SLEEP_ENABLED())
{
APP_LOG(TS_OFF, VLEVEL_M, "DMA2 Clock is not Enabled in Deep-Sleep\r\n\n");
__HAL_RCC_DMA2_CLK_SLEEP_ENABLE();
}
HAL_SuspendTick();
/* USER CODE END UTIL_SEQ_Idle_1 */
UTIL_LPM_EnterLowPower();
/* USER CODE BEGIN UTIL_SEQ_Idle_2 */
HAL_ResumeTick();
/* USER CODE END UTIL_SEQ_Idle_2 */
}
I still get the "HAL_TIM_PWM_Start_DMA Error"
Any suggestion is appreciated.