AnsweredAssumed Answered

LPC1549 @72MHz, DMA transfers can't reach more than 700kHz?

Question asked by volkeroth on Sep 24, 2016

Another LPC1549 mystery: I played around with WS8212 RGB LEDs and wrote an SCT/PWM/DMA mini driver to create PWM periods with SCT and write new values to the duty cycle reload register with DMA transfers. While this works fine, it stops working slightly above 700kHz while the WS2812 LEDs would theoretically require a 800kHz frequency.

It doesn't seem to be a bandwidth limit as it doesn't matter whether I use 32bit or 16bit transfers. Actually it looks like not a single transfer is done when the frequency is too high. So is there any hard limit for DMA transfers that makes it impossible to trigger them faster than 700kHz for a 72MHz main clock?

 

Side note: as noted before, the description of the DMA peripheral in the LPC15xx manual leaves much to be desired and a proper application note would be really helpful. E.g. it took me half a day to figure out that DMA transfers triggered by an SCT event need to be configured as burst transfers to work. There is not the slightest hint in the manual that this is mandatory. It's not even explained at all that an SCT trigger is not a peripheral trigger but a hardware trigger.

Outcomes