Скорее всего, здесь используется DMA, чтобы ЦАП мог иметь некоторую регулярную синхронизацию, генерировать сигнал путем изменения аналогового выхода через некоторый известный интервал.
Да, если это общий автобус, то ... вы должны поделиться.
Процессор не всегда использует шину, поэтому иногда полезно поделиться с dma engine. И, конечно, это означает, что приоритеты вовлекаются, иногда это просто кто пришел первым (например, иметь команду fifo перед ресурсом и запросы fifo up, в порядке их поступления, да, это не обязательно будет детерминированным ). В таком случае вы можете захотеть, чтобы dma имел приоритет над процессором, чтобы чувствительные ко времени вещи, такие как ЦАП или АЦП, имели детерминированную синхронизацию. Зависит от того, как они решили это реализовать.
Люди иногда имеют это часто неправильное предположение, что дма свободен. Он по-прежнему не использует время шины, если используется совместно с процессором (который, в конечном счете, используется при обращении к ресурсу, с которым процессор может общаться), то процессор и / или dma удерживаются, поэтому процессору все еще приходится ждать время, в некоторых реализациях (вероятно, не ваш микроконтроллер), процессор полностью удерживается до завершения dma, процессор останавливается на время. Просто зависит от реализации. Свободная часть этого состоит в том, что процессор не должен постоянно прерываться или опрашивать или задерживать дыхание, чтобы какое-то событие могло подать данные. Может потребоваться время для создания следующего буфера для dma over. Он должен наблюдать за передачей dma, чтобы завершить и справиться с этим, но вместо того, чтобы сказать, что каждый байт теперь представляет собой несколько байтов, некоторый блок данных.
Нет единого универсального ответа. «Это зависит» ... от конкретного дизайна конкретной вещи, которую вы используете. Даже в рамках одного чипа / платы / системы может быть несколько механизмов dma, и нет никаких оснований предполагать, что все они работают одинаково. Для каждого случая вы должны это выяснить, и, к сожалению, они часто не документируют это или документируют это достаточно хорошо. Так что, возможно, вам придется провести несколько экспериментов, если это вызывает озабоченность.