举一个例子来理解, DMA 的常规应用之一是将 ADC 的转换结果传送到 SRAM(某个数组), 假设我们的 DelSig ADC 的分辨率设为 16bit, 现在想用 DMA 将 100 个 ADC 转换结果(16bits = 2 bytes) 传送到内存数组 uint16 Array[100].
DMA 要完成上述操作, 一个方法就是每次从 ADC 的结果寄存器读取 2bytes 的转换结果传送到内存, 一共传送 100 次。 在这种配置下,我们就需要将 Burst count 设为 2(代表 DMA 一次传送的字节数, 这里 ADC 的转换结果是 2bytes, 所以应该设为 2); Transfer count 设为 200 (代表 DMA 这个 TD 一共传送的 数据量总数 100 * 2bytes = 200 bytes, 所以应设为 200)
|