Lo más probable es que se use DMA aquí para que el DAC pueda tener un tiempo regular, genere una forma de onda cambiando la salida analógica en algún intervalo conocido.
Sí, si es un bus compartido, entonces ... tienes que compartir.
La CPU no siempre está utilizando el bus, por lo que a veces es una buena idea compartir con un motor DMA. Y, por supuesto, eso significa que las prioridades se involucran, a veces es solo quién llegó primero (por ejemplo, tiene un comando fifo frente al recurso, y el número máximo de solicitudes, en el orden en que llegan, sí, eso no sería necesariamente determinista ). En un caso como este, es posible que desee que la dma tenga prioridad sobre la CPU, de modo que las cosas sensibles al tiempo, como los DAC o los ADC, tengan un tiempo determinista. Depende de cómo decidieron implementarlo.
La gente a veces tiene esta suposición a menudo incorrecta de que dma es libre. Todavía no consume tiempo de bus, si se comparte con la CPU (que finalmente es como se comunica con un recurso con el que la CPU puede hablar), entonces la CPU y / o la dma se mantienen apagadas, por lo que la CPU todavía tiene que esperar un poco. En algunas implementaciones (es probable que no sea su microcontrolador), la CPU se retiene completamente hasta que se completa la dma, la CPU se detiene durante el tiempo. Solo depende de la implementación. La parte gratuita es que la CPU no tiene que estar constantemente interrumpida o sondeando o conteniendo la respiración para que algún evento alimente datos. Puede tomarse su tiempo crear el siguiente búfer para dma over. Tiene que estar atento a que se complete la transferencia de dma y lidiar con eso, pero en lugar de decir que cada byte ahora tiene varios bytes, algunos bloques de datos.
No hay una respuesta universal. "Depende" ... del diseño específico de lo que está utilizando. Incluso dentro de un diseño de chip / placa / sistema puede haber múltiples motores de dma y no hay razón para suponer que todos funcionan de la misma manera. Para cada caso tienes que resolverlo, y desafortunadamente, a menudo no lo documentan o lo documentan lo suficientemente bien. Por lo tanto, es posible que tenga que crear algunos experimentos si es una preocupación.