0

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.

Heneer
  • 489
  • 7
  • 12

1 Answers1

0

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.

Heneer
  • 489
  • 7
  • 12