I'm working on a project that involves connecting an MDMA, a general purpose timer (GPT), and the trigger routing unit (TRU) internal to the BF707.
The GPT is configured to operate in continuous PWM mode, and to be the trigger master for the system. The MDMA is the trigger slave.
I have data living in a buffer that describes a bunch of PWM width and delay values. When the PWM period expires I want the GPT to generate a trigger (through the TRU) which will kick the MDMA to go fetch new values for width and delay, and write them into the GPT registers.
The issue I have is that - I can't seem to get this running unless I have both sides of the MDMA (source and destination) configured to wait for the trigger event to start their work units. For the application this is not acceptable. I need the source side of the MDMA to just constantly be filling the FIFO while new data is available and then, every so often, the trigger goes off and the destination side comes into the FIFO and grabs the next two values for width and delay.
Is there a way to configure an MDMA so that only the destination side is gated by the trigger.. and the destination side just runs continuously to fill the FIFO? Maybe I'm just misconfiguration something within the DMA_CFG register..