2016-12-22 8 views
0

STM32F030C6을 사용하여 BLDC 모터 제어 프로젝트를 진행하고 있는데 현재 제한 회로에서 발견 된 버그로 인해 혼란 스럽습니다.STM32의 타이머 브레이크 입력이 매번 작동하지 않는 이유는 무엇입니까?

저는주기 별 전류 제한을 적용하고 있습니다. 외부 내가 결합 된 3 단계의 지상 경로에 전류를 측정 (충분히 빨리) opamp 앰프있다. 또한, 비교 값과 설정 값을 비교하는 고속 비교기가 있습니다. 이 비교기의 출력은 PB12의 TIM1_BKIN 입력으로 공급됩니다. 전류가 너무 높아지면, 비교기는 플립되고 STM32는 PWM을 턴 오프한다.

일반적으로이 기능은 완벽하게 작동합니다 (범위 이미지의 첫 번째주기 참조). 비교기 출력 (CH2)이 로우가되고 측정 된 전류 (CH1)가 즉시 떨어지기 시작합니다. 그런데

Oscilloscope screenshot

하면 급등 내 프로브로의 신호 쌍으로서 H 브리지 스위칭을 볼 수있다.

두 번째로 - 그리고 실제로 이것은 여러 번 발생합니다. 브레이크 입력은 하강 에지에 반응하지 않는 것처럼 보입니다. 왜냐하면 전류는 계속 증가하고 4.6us 후에 스위치 오프됩니다.

소프트웨어가 BRK 입력을 비활성화 할 가능성을 없애기 위해 TIM1_BDTR 레지스터에서 잠금 수준 1을 활성화했습니다. 이를위한 코드는 STM32CubeMX 4.14.0을 사용하여 생성됩니다.

왜 이것이 BRK 입력이 비동기 적으로 작동하고 인터럽트가 필요하지 않은지 이해할 수 없습니다. 어떤 아이디어 나 더 많은 정보 요청?

답변

0

끊기 입력이 항상 작동하지 않는 이유를 찾지 못했습니다.

대신 브레이크 입력 대신 ETR (외부 트리거) 입력을 사용하고 그 내용을 지우도록 하드웨어를 재생했습니다. 이것은 완벽하게 작동합니다.