Разобрался! В одной из задач написанной как "черновик" был код
ожидания ADC flag ставился в прерывании окончания преобразования и while ждал 13мсек
Почему этот while убивал программные таймеры я не понял.
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc, ADC_CYCLES);
while( flag == 0 ){} // ждем флага из прерывания