MPC5553/MPC5554 Microcontroller Reference Manual, Rev. 5
Freescale Semiconductor 19-111
19.5.4 Modifying Queues
More command queues may be needed than the six supported by the eQADC. These additional command
queues can be supported by interrupting command transfers from a configured CFIFO, even if it is
triggered and transferring, modifying the corresponding command queue in the RAM or associating
another command queue to it, and restarting the CFIFO. More details on disabling a CFIFO are described
in Section 19.4.3.5.1, “Disabled Mode.”
1. Determine the resumption conditions when later resuming the scan of the command queue at the
point before it was modified.
a) Change EQADC_CFCRn[MODEn] (see Section 19.3.2.6) to disabled. Refer to
Section 19.4.3.5.1, “Disabled Mode,” for a description of what happens when MODEn is
changed to disabled.
b) Poll EQADC_CFSR[CFSn] until it becomes IDLE (see Section 19.3.2.11).
c) Read and save EQADC_CFTCRn[TC_CFn] (see Section 19.3.2.9) for later resuming the scan
of the queue. The TC_CFn provides the point of resumption.
d) Because all result data may not have being stored in the appropriate RFIFO at the time
MODEn is changed to disable, wait for all expected results to be stored in the RFIFO/result
queue before reconfiguring the eDMA to work with the modified result queue. The number of
results that must return can be estimated from the TC_CFn value obtained above.
2. Disable the eDMA from responding to the eDMA request generated by EQADC_FISRn[CFFFn]
and EQADC_FISRn[RFDFn] (see Section 19.3.2.8).
3. Write “0x0000” to the TC_CFn field.
4. Load the new configuration and conversion commands into RAM. Configure the eDMA to
support the new command/result queue, but do not configure it yet to respond to eDMA requests
from CFIFOn/RFIFOn.
5. If necessary, modify the EQADC_IDCRn registers (see Section 19.3.2.7) to suit the modified
command queue.
6. Write 1 to EQADC_CFCRn[CFINVn] (see Section 19.3.2.6) to invalidate the entries of CFIFOn.
7. Configure the eDMA to respond to eDMA requests generated by CFFFn and RFDFn.
8. Change MODEn to the modified CFIFO operation mode. Write 1 to SSEn to trigger CFIFOn if
MODEn is software trigger.
19.5.5 Command Queue and Result Queue Usage
Figure 19-67 is an example of command queue and result queue usage. It shows the command queue 0
commands requesting results that will be stored in result queue 0 and result queue 1, and command queue
1 commands requesting results that will be stored only in result queue 1. Some command messages request
data to be returned from the on-chip ADC/external device, but some only configure them and do not
request returning data. When a command queue contains both write and read commands like command
queue 0, the command queue and result queue entries will not be aligned, in Figure 19-67, the result for
the second command of command queue 0 is the first entry of result queue 0. The figure also shows that
command queue and result queue entries can also become unaligned even if all commands in a command
queue request data as command queue 1. Command queue 1 entries became unaligned to result queue 1
entries because a result requested by the forth command queue 0 command was sent to result queue 1. This
happens because the system can be configured so that several command queues can have results sent to a
single result queue.