The problem describes more detail here:
Before I turn on the voltage source to the motor inverter, the encoder signal and IRQ work normally by testing a PIN which would change level each time reaching the interrupt.
When I turn on the voltage source, the signal from the hall sensor is normal with a little noise. However, the level-changing PIN setting by the IRQ would sometimes jump between two edge sensing( mess up the decoding ). Moreover, when turning the motor to some specific degree, the level-changing PIN would continuously jump even if the hall sensor signal looks normal.
I check the jumping frequency and find out that the frequency is just the same as the PWM output frequency.
What's the reason to this jumping problem? What's the relation to the PWM output?
The situation is as following:
hardware: MCU (ST32-f446re), extension board (STEVAL-IPM15B, an inverter for motor control), 36V brushless DC mootor(PMSM).
software: eclipse(IDE), IRQ setting for motor internal hall sensor decoding, TIM1 for three phase PWM output.
The IRQ decoding and the TIM1 PWM output are tested OK by individually measuring the signal on PIN with the desired command.
The testing command to the problem above is by making dq transform voltage Vdq = 0 for the PWM output.