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.
工具与软件:
你(们)好
我在多通道模式下使用 McBSP 以连接两个 F28377D 电路板。 到目前为止、我使用了16个通道(16位字)、没有任何同步问题或数据移位开关任何板。 数据传输由两个 DMA 通道管理、一个用于接收、另一个用于发送。
现在我需要使用32个通道 、使用(X/R) CERA END (X/R) CERB、但在这种情况下、可以打开/关闭主板(生成帧同步和时钟的主板)、从器件接收到的数据可以移动16个位置、这由电流块指示器进行确认。
可以纠正此行为吗?
此致 Luca
Luca
很抱歉、我目前正在出差、没有任何硬件来尝试重现此问题。
我想从您的帖子中可以看出、DMA 不是行为中的一个因素、您能否确认更改数据顺序的 DMA 没有问题、如果您通读 CPU、情况仍然不正确?
此致!
Matthew
您好、Matthew
我不知道 DMA 是否有一些问题。 我的感觉是、这个问题是由使用32通道有两个块所必需的因素引起的、并且这个问题取决于主器件停止传输时块是否处于活动状态。 主站发送传输数据包、其中第一个字(通道0)为0xAAAA、最后一个字 (通道31)为0x5555。 打开/关闭主器件、从器件可以正确接收它或移位。 移位时、我可以在通道16中看到0xAAAA、在通道15中看到0x5555、这与块被交换的情况类似。 事实上在 DMA 事务结束中断中读取当前 Rx 块、我会在没有发生移位时找到0、否则找到1。 继续打开/关闭主器件有可能获取正确或错误的数据。
此致
Luca.
您好、Matthew
但是、如果我尝试通过 CPU 读取、我如何知道实际的信道编号?
此致
Luca.
Luca
如果在传输过程中循环供电、接收器将等待您遇到的下一个时钟/消息。 我认为接收器恢复的唯一方法是 主器件发送一条起始消息、指示连接是在上电时建立的第一个通信。 我们需要在接收器侧查找这条特殊消息、这将让我们知道丢弃已终止消息的另一半。
我无法在硬件中让接收器检测到主设备已离线、因此希望上述想法适用于您的系统。
此致!
Matthew
您好、Matthew
感谢您的建议、我将尝试此解决方案、或者如果不是32字 x 16位、我可以使用16字 x 32位。 对于只有16个字的帧、我没有看到这个问题。
此致
Luca.