Quand une donnée est reçue sur la liaison UART, on la stocke dans une variable située dans la RAM. Le problème c’est que cela va mobiliser le microprocesseur afin de la transférer. Néanmoins ce n’est pas une tâche très compliquée et cela sous-utilise les capacités de celui-ci. La Direct Memory Access a donc été crée pour faire un lien direct entre les périphériques de liaison et la ram afin de soulager le microprocesseur. Celui-ci adresse la tâche à la DMA puis revient directement à sa tâche principal après.
La DMA a seulement accès à une partie de la Ram. En effet, la partie de la Ram accessible par la DMA doit être aussi accessible au microcontrôleur s’il a besoin de la même variable au même moment . Pour que les deux puissent accéder à la même case mémoire en même temps, il faut que celle-ci soit double port. En pratique, c’est très rare que la même case mémoire soit accedé en même temps. On remarque que c’est une DMA 16 channels : elle peut créer 16 transfert de données en même temps.
La DMA n’est pas tous le temps présente dans le microprocesseur. Cela coute plus cher d’en avoir une. La direct Access memory peut contenir jusqu’à 2 kilo-octets de mémoire.