Skip to content
Snippets Groups Projects
Commit b2393970 authored by Emmanuel Roux-Palomo's avatar Emmanuel Roux-Palomo Committed by Clément Foucher
Browse files

Fix ADC Trigger interleaved and ADC Center Aligned

Fix ADC Trigger by using TIMCMP and CMP4 for ADC Update.
Fix get_leg_period_us for center aligned mode.
parent 51fb99e0
No related branches found
No related tags found
1 merge request!61Fix ADC Trigger interleaved and ADC Center Aligned
......@@ -62,16 +62,16 @@ void _hrtim_init_events_center_aligned(hrtim_tu_t leg1_tu, hrtim_tu_t leg2_tu)
LL_HRTIM_TIM_SetADCRollOverMode(HRTIM1, LL_HRTIM_TIMER_B, LL_HRTIM_ROLLOVER_MODE_PER);
// setting adc trigger
hrtim_adc_trigger_en(1, 1, LL_HRTIM_ADCTRIG_SRC13_TIMAPER);
hrtim_adc_trigger_en(3, 2, LL_HRTIM_ADCTRIG_SRC13_TIMBPER);
hrtim_adc_trigger_en(1, 1, LL_HRTIM_ADCTRIG_SRC13_TIMACMP4);
hrtim_adc_trigger_en(3, 2, LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4);
}else if(leg1_tu == TIMA && leg2_tu == TIMC){
// setting the adc roll-over mode on period event
LL_HRTIM_TIM_SetADCRollOverMode(HRTIM1, LL_HRTIM_TIMER_A, LL_HRTIM_ROLLOVER_MODE_PER);
LL_HRTIM_TIM_SetADCRollOverMode(HRTIM1, LL_HRTIM_TIMER_C, LL_HRTIM_ROLLOVER_MODE_PER);
// setting adc trigger
hrtim_adc_trigger_en(3, 1, LL_HRTIM_ADCTRIG_SRC13_TIMAPER);
hrtim_adc_trigger_en(1, 3, LL_HRTIM_ADCTRIG_SRC13_TIMCPER);
hrtim_adc_trigger_en(3, 1, LL_HRTIM_ADCTRIG_SRC13_TIMACMP4);
hrtim_adc_trigger_en(1, 3, LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4);
}
}
......@@ -87,11 +87,11 @@ void _hrtim_callback()
void hrtim_update_adc_trig_interleaved(uint16_t new_trig, hrtim_tu_t leg1_tu, hrtim_tu_t leg2_tu)
{
if(leg1_tu == TIMA && leg2_tu == TIMB){
hrtim_cmp_set(0, TIMA, CMP3xR, new_trig);
hrtim_cmp_set(0, TIMB, CMP3xR, new_trig);
hrtim_cmp_set(0, TIMA, CMP4xR, new_trig);
hrtim_cmp_set(0, TIMB, CMP4xR, new_trig);
}else if(leg1_tu == TIMA && leg2_tu == TIMC){
hrtim_cmp_set(0, TIMA, CMP3xR, new_trig);
hrtim_cmp_set(0, TIMC, CMP3xR, new_trig);
hrtim_cmp_set(0, TIMA, CMP4xR, new_trig);
hrtim_cmp_set(0, TIMC, CMP4xR, new_trig);
}
}
......
......@@ -196,7 +196,10 @@ uint16_t leg_period(void)
uint32_t leg_get_period_us()
{
return period*184e-6;
if(LL_HRTIM_TIM_GetCountingMode(HRTIM1, LL_HRTIM_TIMER_A) == LL_HRTIM_COUNTING_MODE_UP_DOWN)
return period*2*184e-6;
else
return period*184e-6;
}
uint8_t leg_numof(void)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment