Najprawdopodobniej DMA jest tutaj używane, aby DAC mógł mieć pewne regularne taktowanie, generować kształt fali zmieniając wyjście analogowe w znanym odstępie czasu.
Tak, jeśli jest to wspólna magistrala, to ... musisz się dzielić.
Procesor nie zawsze korzysta z magistrali, dlatego czasem dobrym pomysłem jest udostępnienie go silnikowi DMA. I oczywiście oznacza to, że włączają się priorytety, czasem to właśnie ten, kto tam dotarł pierwszy (na przykład, ma polecenie fifo przed zasobem i żądania kwitu w górę, w kolejności ich przybycia, tak, to niekoniecznie deterministyczne ). W takim przypadku możesz chcieć, aby dma miała priorytet nad jednostką centralną, aby rzeczy wrażliwe na czas, takie jak przetworniki DAC lub ADC, miały deterministyczne czasy. Zależy od tego, jak zdecydowali się go wdrożyć.
Ludzie często mają błędne założenie, że dma jest bezpłatne. Nie zajmuje to nadal czasu magistrali, jeśli współużytkowane z jednostką centralną (która ostatecznie jest, ponieważ komunikuje się z zasobem, z którym jednostka centralna może rozmawiać), wówczas jednostka centralna i / lub dma są wstrzymywane, więc jednostka centralna musi jeszcze poczekać czasem, w niektórych implementacjach (prawdopodobnie nie w twoim mikrokontrolerze) jednostka centralna jest całkowicie wstrzymywana aż do zakończenia dma, jednostka centralna jest zatrzymywana na czas trwania. Tylko zależy od implementacji. Wolne jest to, że procesor nie musi być ciągle przerywany, odpytywany lub wstrzymywany, aby jakieś zdarzenie mogło dostarczyć dane. Utworzenie kolejnego bufora dla dma może zająć trochę czasu. Musi uważać, aby transfer dma się zakończył i sobie z tym poradził, ale zamiast powiedzieć, że każdy bajt to teraz wiele bajtów, jakiś blok danych.
Nie ma jednej uniwersalnej odpowiedzi. „To zależy” ... od konkretnego projektu konkretnej rzeczy, której używasz. Nawet w ramach jednej konstrukcji układu / płyty / systemu może istnieć wiele silników DMA i nie ma powodu, aby zakładać, że wszystkie działają w ten sam sposób. W każdym przypadku musisz to rozgryźć i niestety często nie dokumentują tego ani nie dokumentują wystarczająco dobrze. Może to wymagać wykonania eksperymentów, jeśli jest to problem.