DMA büyük olasılıkla burada kullanılır, böylece DAC bazı düzenli zamanlamaya sahip olabilir, bilinen bir aralıkta analog çıkışı değiştirerek bir dalga formu oluşturabilir.
Evet, eğer paylaşılan bir otobüsse ... paylaşmanız gerekir.
CPU her zaman otobüsü kullanmıyor, bu nedenle bazen bir dma motoruyla paylaşmak iyi bir fikirdir. Ve elbette bu, önceliklerin dahil olduğu anlamına gelir, bazen ilk önce oraya kim gelir (örneğin, kaynağın önünde bir fifo komutu ve fifo up istekleri, geldikleri sırayla, evet, zorunlu olarak deterministik olmayacaktır) ). Böyle bir durumda, dma'nın CPU'ya göre önceliğe sahip olmasını isteyebilirsiniz, böylece DAC'ler veya ADC'ler gibi zamana duyarlı şeyler deterministik zamanlamaya sahip olur. Nasıl uygulamayı seçtiklerine bağlıdır.
Millet bazen dma'nın özgür olduğu yönündeki yanlış varsayımlara sahiptir. Cpu ile paylaşılıyorsa (nihayetinde cpu'nun konuşabileceği bir kaynakla konuştuğu gibi) hala otobüs süresini tüketmez, o zaman cpu ve / veya dma kapalı tutulur, bu yüzden cpu hala beklemek zorundadır zaman, bazı uygulamalarda (muhtemelen mikrodenetleyiciniz değil) dma tamamlanana kadar cpu tamamen kapalı tutulur, cpu süre boyunca durdurulur. Sadece uygulamaya bağlıdır. Bunun ücretsiz kısmı, cpu'nun sürekli olarak kesintiye uğraması veya bazı olayların veri beslemesi için nefesini yoklaması veya nefesini tutması gerekmemesidir. Üzerinde dma yapılacak bir sonraki arabelleğin oluşturulması zaman alabilir. Dma aktarımının bunu tamamlamasını ve bununla başa çıkmasını izlemek zorundadır, ancak her bayt yerine artık çok bayt, bir miktar veri bloğu olduğunu söylemektedir.
Evrensel bir cevap yok. "Bu bağlıdır" ... kullandığınız şeyin özel tasarımına bağlıdır. Tek bir yonga / kart / sistem tasarımı içinde bile birden fazla dma motoru olabilir ve hepsinin aynı şekilde çalıştığını varsaymak için bir neden yoktur. Her örnek için bunu anlamanız gerekir ve ne yazık ki, çoğu zaman bunu belgelemez veya yeterince iyi belgelemezler. Dolayısıyla, bu bir endişe kaynağıysa, bazı deneyler oluşturmanız gerekebilir.