0
\$\begingroup\$

TL;DR
TIM1 break works from BKIN but not from DFSDM analog watchdog

I have timer TIM1 running a PWM output and use a button connected to PE15. PE15 is setup as alternate function 1 i.e. TIM1_BKIN.

When pressing the button I can see that break interrupt flag is set in TIM1->SR register (BIF). The master output enable (MOE) gets disabled and the PWM output on TIM1 turns off. All good.

Now I want to achieve the same with the DFSDM (Digital Filter for Sigma-Delta Modulator) analog watchdog. From Figure 387. Break and Break2 circuitry overview in the st.com stm32h750vbt reference manual RM0433 Rev 7, I can see that both BKIN and DFSDM break goes into the same OR gate. I have highlighted the BKIN with red and DFSDM with green.

Figure 387. Break and Break2 circuitry overview

Since the BKIN button works I assume my problem is in the green part and backwards. In the TIM1->AF1 register I have enabled BKDF1BK0E which is the dfsdm1_break[0] enable.

To enable the break to trigger from DFSDM analog watchdog I have set Break signal assignment to analog watchdog high threshold event, BKAWH, to 1 for dfsdm_break[0]. However due to the change:

Section 24: Advanced-control timers (TIM1) Updated procedure in Section : External clock source mode 1, Section 24.3.7: Input capture mode, Section 24.3.8: PWM input mode and Section 24.3.20: One-pulse mode. Updated Section 24.3.16: Using the break function, including Figure 191: Break and Break2 circuitry overview

The previous revision of the document (rev 6) had different break connections, so I have also tried to set BKAWH to 0xf.

I have a current sensor connected to the DFSDM, and I can successfully trigger the DFSDM analog watchdog high threshold flag AWHTF in DFSDM_FLT3AWSR with a lab power supply. I can also clear it with the CLRAWHTF register. But the BIF flag in TIM1->SR is never triggered.

I also managed to disable MOE within an interrupt triggered from IRQ_DFSDM1_FLT3 that checked if the AWHTF flag was set.

Microprocessor is st.com stm32h750vbt

Update 1: If I toggle BKINE in TIM1->AF1 from 1 to 0. The BIF flag in TIM1->SR goes high. However it does not change with AWHTF status.

\$\endgroup\$

1 Answer 1

0
\$\begingroup\$

It seems that the DFSDM break would only trigger when TIM1->BDTR BKP was set to 1. However that inverted the function of my break button. So it was also necessary to set TIM1->AF1 BKINP to 1.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.