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