It seems LPC845 DMA cannot write GPIO at 0xA0000000
I get DMA0 ->ERRINT=1 when trying to do the GPIO write.
As troublehooting step, I changed the dest address to RAM and do not get the ERRINTflag.
I have not been able to find a definitive source to say if this is truly impossible.
I did find a reference which is not definitive but hints that this might be the case:
https://community.nxp.com/t5/LPC-Microcontrollers/Lpc-824-DMA-to-GPIO/m-p/650903
Can someone please confirm?
Hello @phatpaul
Thanks for your question.
Yes, the LPC845 DMA controller cannot write directly to the GPIO register space at address 0xA0000000. The GPIO peripheral is connected through the Cortex-M0+ I/O bus for fast CPU access, whereas the DMA controller accesses memories and supported peripherals through the AHB/APB bus infrastructure.
In addition, the LPC845 datasheet states that:
"The DMA controller can access all memories and the USART, SPI, I2C, DAC, and Capacitive Touch."
GPIO is not listed among the peripherals accessible by DMA. Therefore, DMA transfers to the GPIO register space are not supported and will generate a transfer error (ERRINT), which is consistent with the behavior you observed.
Thank you.
BR
Alice