Hello,
I've been looking a bit into the nRF52 product specification and I was just wondering how powerful EasyDMA is under extreme conditions.
Let's assume the following scenario: All 12 PWM channels are in use, with a frequency of 1 MHz. The duty cycle shall be set every period, which would result in a bandwith usage of 1MHz * 12 channels * 2 Bytes = 24 MB/s.
- How many cycles does an EasyDMA operation take?
- Will EasyDMA access the memory with 32 bit width (and update two PWM COMPARE registers at the same time?
- If there is concurrent EasyDMA access, will there be interleaving? Or may one EasyDMA device be blocked by a device of higher priority (e.g. the radio)?
- How will excessive EasyDMA load affect the remaining system? Can I calculate the impact on system performance (application speed)? Might the reliability of Bluetooth communication be affected?
And one more question concerning the PWM specification: Are the COMPARE registers double-buffered (and updated at the beginning of a PWM period)? Or are the new values applied just at the time of loading (which means during a PWM period)? In other words, if 12 COMPARE registers have to be updated through EasyDMA, might it happen that the later channels might use outdated values and it might come to glitches when their COMPARE registers are updated later?
Thanks for your help.