私はSTM32F030C6を使ってBLDCモータ制御プロジェクトを進めていますが、電流制限回路で見つかったバグが混乱しています。STM32のタイマーブレーク入力が毎回動作しないのはなぜですか?
私は、サイクルごとの電流制限を適用しています。外部的に私は(十分に速い)オペアンプアンプを3つのフェーズのグランドパスに電流を測定している。また、高速化されたコンパレータがあり、このコンパレータは設定値と比較します。このコンパレータの出力はPB12のTIM1_BKIN入力に供給されます。電流が高すぎると、コンパレータは反転し、STM32はPWMをオフにします。
通常、これは完全に機能します(スコープイメージの最初のサイクルを参照)。コンパレータの出力(CH2)がローになり、測定された電流(CH1)がすぐに低下し始めます。
ところで、あなたはスパイクを引き起こし、私のプローブへの信号夫婦としてのHブリッジのスイッチングを見ることができます。
2回目 - 実際にはこれは何度も起こります。ブレイク入力は立ち下がりエッジに反応していないようですが、電流が上昇し続け、4.6us後にスイッチオフします。
ソフトウェアがBRK入力を無効にする可能性を排除するために、TIM1_BDTR レジスタのロックレベル1をアクティブにしました。これを行うためのコードは、STM32CubeMX 4.14.0を使用して生成されます。
私は、BRK入力が非同期で動作し、割り込みを必要としないため、なぜこれが起こるのか理解できません。より多くの情報を求めるアイデアや要望はありますか?