Thread 中讨论的其他器件:OMAP-L138、 SYSBIOS
C6657的 upp 外设数据表中没有太多关于正确分流/停止这些 DMA 传输的信息。
我只需要在接收模式下定期停止和启动 UPP 接口。 我们有一个乒乓缓冲器(我将调用下半部分缓冲器0和上半部分缓冲器1)。
这就是发生的情况:
1) 1)上电- UPID0 = 0x00000000
2) 2)当前 UPP 在复位(加电)后的预期行为-窗口中断周期结束正确。
3) UPP 传输被停止(UPID0 =缓冲区0的地址)
4) 4) UPP 传输开始、窗口中断周期结束正确
5) 5) UPP 传输被停止(UPID0 =缓冲区1的地址)
6) 6) UPP 传输开始、窗口中断结束为双倍。
我们使用相同的例程来配置 UPP 接口、线数、正弦大小...传输之间唯一的区别是我在每个配置序列前后捕获 upp 寄存器时、UPID0、UPID1、 和 UPID2寄存器是不同的(即它们似乎具有与前一次传输相同的陈旧数据)。
在我们的设置中、ISR 会对下一个 DMA 传输进行编程、但是当我想停止传输时、它会设置一个标志、因此当 ISR 再次运行时、 它不会对下一个传输进行编程。 这应有效地使 upp DMA 运行为 dry。 由于这些寄存器差异、我似乎仍然在使用过时的 DMA 配置。
要重新拍:
加电时、UPID0寄存器为0x00000000
在我开始并停止传输后、UPID0寄存器是 Buffer0的地址
在我再次开始并停止传输后、UPID0寄存器是地址缓冲器1
似乎我需要使 UPID0寄存器复位为0x00000000、
是否有任何方法可以复位 UPP 的 DMA、以便我们能够匹配初始上电复位条件?





