The are several operating modes designed to maximize data throughput, each of which have different applications. This module will subsequently look at each of these modes in more detail, but for now let’s just summarize what they are. “One-Shot”, as its name implies, configures a DMA channel to move a block of data once, after which it alerts the CPU and is then disabled. “Auto-Repeat” configures a DMA channel to move a block of data, after which it alerts the CPU and then re-initializes the channel to repeat the operation. The CPU needs to have at least started processing the buffer before the next DMA buffer transfer begins. The Half Buffer Transfer complete interrupt mode can help mitigate the processing crunch, inherent in “auto-repeat” mode, by letting the CPU know that the buffer is half full, or half empty if it is being read by the DMA controller. “Ping-pong” mode operates with “auto-repeat” mode and simply provides an alternate buffer base address for successive block transfers, as will be shown in a subsequent example. “Peripheral Indirect Addressing” is a special addressing mode intended to provide a basic form of scatter-gather addressing capability, specific to each peripheral that supports it. The ‘Null Data Peripheral Write’ mode simplifies unidirectional data reception from the SPI. Finally, ‘Manual Transfer Mode’ is a means to start a block transfer through software. Now the module will review each of these modes in more detail.