Hallo zusammen,
ich arbeite derzeit an einer sensorlosen Regelung eines BLDC Motors und
verwende die injected Funktion des ADC um die Spannungen am
rekonstruierten Sternpunkt und an der nicht aktiven Phase zu messen.
TIM1 erzeugt mir die PWM mit den Kanälen 1 bis 3 und Kanal 4 nutze ich
um den ADC in der PWM_high Zeit zu triggern. Das scheint soweit auch zu
funktionieren.
Ich habe jedoch das Problem, dass scheinbar nicht erkannt wird, dass die
Phasenspannung die Sternpunktsspannung kreuzt.
Um mal die Werte des ADC zu kontrollieren habe ich diese per USART an
MATLAB geschickt und wollte mir den gesamten Verlauf einer Phase
betrachten. Der Plot sah mir aber nicht sonderlich einleuchted aus.
Daher wollte ich versuchen den ADC häufiger durch einen anderen Timer zu
triggern um mal den exakten Verlauf der Spannungen zu sehen.
Ich habe den Timer konfiguriert und wollte mit
1 | ADC_ExternalTrigInjectedConvConfig( ADC1, ADC_ExternalTrigInjecConv_T2_CC1 );
|
im ADC_init() den Trigger auf TIM2_CC1 umstellen. Jedoch scheint der
Trigger nicht zu funktionieren, bzw zumindest bekomm ich nicht mehr den
"end of conversion Interrupt" des ADC mehr. Ich habe auch schon überlegt
ob ich zu häufig trigger und die Abtastzeit deutlich erhöht, jedoch
ändert sich nix.
Hab ich irgendetwas übersehen beim Konfigurieren des TIM2?
Vielen Dank schon mal für eure Hilfe