DMA rất có thể được sử dụng ở đây để DAC có thể có một số thời gian thông thường, tạo ra dạng sóng bằng cách thay đổi đầu ra analog ở một khoảng thời gian đã biết.
Có nếu đó là xe buýt dùng chung thì ... bạn phải chia sẻ.
Cpu không phải lúc nào cũng sử dụng xe buýt, do đó đôi khi nên chia sẻ với động cơ dma. Và tất nhiên, điều đó có nghĩa là các ưu tiên được tham gia, đôi khi chỉ là người đến đó trước (ví dụ: có lệnh fifo trước tài nguyên và năm mươi yêu cầu, theo thứ tự họ đến, vâng, điều đó không nhất thiết phải có tính quyết định ). Trong trường hợp như thế này, bạn có thể muốn dma được ưu tiên hơn cpu để những thứ nhạy cảm về thời gian như DAC hoặc ADC có thời gian xác định. Phụ thuộc vào cách họ chọn để thực hiện nó.
Mọi người đôi khi có giả định này thường không chính xác rằng dma là miễn phí. Nó không tiêu tốn thời gian của xe buýt, nếu được chia sẻ với cpu (mà cuối cùng là khi nó nói chuyện với một tài nguyên mà cpu có thể nói chuyện) thì cpu và / hoặc dma bị tắt, vì vậy cpu vẫn phải chờ một số thời gian, trong một số triển khai (có thể không phải là vi điều khiển của bạn), cpu bị tắt hoàn toàn cho đến khi dma hoàn thành, cpu bị dừng trong thời gian. Chỉ phụ thuộc vào việc thực hiện. Phần miễn phí của nó là cpu không phải liên tục bị gián đoạn hoặc bỏ phiếu hoặc nín thở cho một số sự kiện để cung cấp dữ liệu. Nó có thể mất thời gian của nó để tạo bộ đệm tiếp theo cho dma hơn. Nó phải theo dõi quá trình chuyển dma để hoàn thành và xử lý vấn đề đó, nhưng thay vì nói mỗi byte thì bây giờ là nhiều byte, một số khối dữ liệu.
Không có một câu trả lời phổ quát. "Nó phụ thuộc" ... vào thiết kế cụ thể của thứ cụ thể bạn đang sử dụng. Ngay cả trong một thiết kế chip / bo mạch / hệ thống có thể có nhiều động cơ dma và không có lý do gì để cho rằng tất cả chúng đều hoạt động theo cùng một cách. Đối với mọi trường hợp bạn phải tìm ra nó, và thật không may, họ thường không ghi chép tài liệu hoặc tài liệu đó đủ tốt. Vì vậy, bạn có thể phải tạo ra một số thí nghiệm nếu nó là một mối quan tâm.