В двух словах - клок получается ШИМ-ом с того же таймера, который тактирует DMA.
Чтобы это работало стабильно на больших частотах событий от таймера к DMA, нужно чтобы приоритет арбитража шины для DMA-контроллера был выше чем у других bus-master-ов в МК. Главным образом - выше чем у CPU. А у большинства известных мне МК, как раз у CPU приоритет доступа к шине выше чем у DMA и изменить его нельзя.
Только некоторые МК позволяют менять.
А без этого невозможно гарантировать то, что не будет пропусков обслуживания DMA-контроллером событий от таймера. Да даже когда нет пропусков, из-за того что идёт задержка обслуживания DMA из-за занятости шины, то не будет никакой стабильности во временных диаграммах сигналов данных (будет джиттер). И уж никак нельзя гарантировать синхронность и постоянство фаз между сигналом от таймера на внешней ноге (который генерится без задержек арбитража) и сигналами данных от DMA.
Соответственно: нужно брать МК с возможностью задания наивысшего приоритета DMA-контроллеру. Ну или ложить спать CPU (и остальных bus-master-ов) на время DMA-передачи.
Ну или посмотреть матрицу шин в вашем МК - возможно раскидав массивы данных DMA и рабочие области памяти процессора по разным регионам памяти сидящим на разных шинах, можно добиться независимого доступа к памяти без задержек на арбитраж шины. Хотя тут надо посмотреть.... не факт...