Hola!
Yo he utilizado el DMA con el ADC y el UART en un 33F en MPLAB C30 ...
Con el ADC toma una serie de muestras (2, 4, 8, 16, etc) y las guarda en DMA y genera una interrupcion cuando finaliza de tomar todas las muestras.
Con el UART utilice el DMA como buffer de datos tanto de recepcion como de envio. En este, fue muy interesante .. pues tuve que crear un protocolo de comunicacion que primero le indicara al dsPIC cuantos datos va a recibir, con ese dato, reconfiguro el DMA para que genere la interrupcion cuando se complete la recepcion, ademas utilice un timer para generar error por timeout. Lo mismo para envio.
La verdad que es muy sencillo, en el manual de referencia vienen ejemplos ... lo que no pude hacer fue el DMA con el SPI.
Saludos