主题:SysConfig 中讨论的其他器件
工具/软件:
你好。
正在尝试从 ADC 到 SPI 的 DMA ...我想一次执行一次 DMA 64次转换...似乎没有开始。
我已经设置了 below..see snip。
再说一次(来自上一个线程)我对 dma...的中断项感到困惑
DMA 触发器是第一次转换到 MEM0。"MEM0结果加载的中断"..... 但我不想发生中断!?
谢谢
Phil
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
你好。
正在尝试从 ADC 到 SPI 的 DMA ...我想一次执行一次 DMA 64次转换...似乎没有开始。
我已经设置了 below..see snip。
再说一次(来自上一个线程)我对 dma...的中断项感到困惑
DMA 触发器是第一次转换到 MEM0。"MEM0结果加载的中断"..... 但我不想发生中断!?
谢谢
Phil
与另一个线程类似、最好将"中断"寄存器视为路由机制。 同样、DMA_TRIG 组具有这些位的子集。
我假设您希望对单个通道(至少)进行64次采样、并让 DMA 将它们捕获到一个数组中。 是这样的
1)传输模式"单",
2)"固定->块"、
3)长度(同时用于两个)字(32位)、
4)源:非增量,目标:增量,
5)传送大小64(项目)。
6)"DMA Samples"(DMA 样本计数)适用于 FIFO 使用情况、因此将其设置为=1 [参考 TRM 第 12.2.12.3]小节。
SysConfig 不会声明您的结果数组(上面的"块")、因此您需要 在代码中调用 DL_DMA_setDestAddr (dma、2、&sample_array[0]);。
似乎您应该得到一个样本;如何设置"采样模式->触发源"?
感谢您的回复。。
我想通过 DMA 从 ADC 传输到 SPI ...
我已通过 SysConfig 设置所有内容、此外还提供:
谢谢...仍然不能得到 DMA 启动..我的计划是 DMA 到 SPI 但现在尝试一个阵列.
我在 sys cfg...see snip 中设置了 DMA。
奇怪的是 DMA 源地址为零(请参阅寄存器)...我是否必须在代码中显式设置?
如果是...对于 ADC0..、memres0的地址是什么? (我找不到)
您好、谢谢。
如果关闭 DMA 并启用 ADC 中断、我可以看到计数器递增:
DL_ADC12_enableDMA ()允许 ADC12发出 DMA 请求(到 DMA 通道)[CTL2:DMAEN]。
DL_DMA_enableChannel()允许 DMA 通道运行、即接受 DMA 请求[DMACTL:DMAEN]。
您如何判断只有16笔交易? [DMASZ 与 POCI 的示波器跟踪?]
您是否仍在直接从 ADC12 [MEMRES]运行 DMA 到 SPI [TXDATA]、或者是否使用中间缓冲器? 如果是前者、如果时间安排不当、FIFO 溢出似乎是可能的。
明白了、谢谢。
如果我查看逻辑分析仪、可以看到(我在每个 DMA 上切换一个引脚)
尊敬的 Phil:
实际上似乎也无法启用它??? 正在运转的螺母.
启用重复模式时、DMA 具有用于其通道配置的临时寄存器:
而且、SPI 只有四个 FIFO 条目、使用 MOSI 触发 ADC 可能会导致 SPI FIFO 溢出并随机丢失数据。
若要检查 DMA 是否完成、也许您可以检查 ADC 中断寄存器.RIS 并查看 DMA 完成是否置为有效。
B.R.
Sal