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.

[参考译文] TMS570LS0714:如何在不读取 MIBSPI RAM 的情况下清除 MIBSPI Rx RAM 接收到的标志/状态...

Guru**** 2693465 points

Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1055726/tms570ls0714-how-to-clear-mibspi-rx-ram-received-flag-status-without-reading-mibspi-ram

器件型号:TMS570LS0714
主题中讨论的其他器件:HALCOGEN

如何清除 RX RAM 就绪或接收到的状态/标志、_without _读取 MIBSPI RAM 的内容?

如果您已经读出该 RAM、则会自动将其清除、但 如果没有、我无法找到如何以其他方式清除它、结果是、在我的 TGX 完成后、不再有中断出现、因为我不会读出这些缓冲区/RAM 的内容。

我想查看/时间在没有 MIBSPI RAM 访问的情况下、我的 MIBSPI ISR/通知需要多长时间、并且似乎无法绕过读取 MIBSPI RAM 的内容...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 V01d:

    您是指 RXEMPTY 状态吗? 在 CPU 读取 RXRAM 或写入1以清除 SPI 标志寄存器(SPIFLG)中的 RXINTFLG 位后、RXEMPTY 位被置位。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的意思是:

    如果我没有在  每个触发通知的组上调用 HalCoGen 的 mibspiGetData(), 那么我就不会再收到通知了。

    因此我尝试通过调用该方法来了解哪些标志被清除,我看到没有:我只从 MIBSPI RAM 中读取。 因此、我假设在某个位置/如何读取这些字、它们就会被清除。

    但我不想读出、只需清除中断/确认中断并继续。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="426815" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1055726/tms570ls0714-how-to-clear-mibspi-rx-ram-received-flag-status-without-reading-mibspi-ram/3906916 #3906916"]如果我没有在  每个触发通知的组中调用 HalCoGen 的 mibspiGetData(), 则我不再收到通知。

    您将收到通知、但 RXOVER 标志已置位、RXEMPTY 标志未置位。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="45190" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1055726/tms570ls0714-how-to-clear-mibspi-rx-ram-received-flag-status-without-reading-mibspi-ram/3907273 #3907273"]您将收到通知,但 RXOVER 标志已置1,RXEMPTY 标志未置1。

    如果我没有收到通知(ISR)回调,  那么.... 如何获得它?  因为我不这么做。  

    如果我读取该 mibspiRAM、那么我会得到回调/ISR。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    多缓冲 SPI 有4个中断:

    TG 传输完成

    TG 传输挂起

    3.接收覆盖  

    4.传输错误

     当发生 TG compelete 中断时调用 mibspiGroupNotification()。 这与您从 RX RAM 中读取数据无关。 如果数据被读出、新的输入数据将覆盖 RX RAM 中的当前数据、  并且 RXOVRN 标志被置位。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    @QJWang

    那么,对于 TG,缓冲模式6-等待 RX 为空-如何工作?   我的意思是、有多种缓冲模式、例如跳过传输、以避免覆盖缓冲器、同时继续进行其他传输。  如果它总是覆盖 MIBSPI RAM /缓冲器、那么.. 嗯、它在所有该组设置中的重点是什么。

    我没有完全了解中断发生的情况、但我已经多次确认、如果我没有为我正在使用的相关组专门读取 mibspiRAM、就不会再出现中断了、 而且 、不再有传输-我在总线上侦听。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现在、当我设置从 MIBSPI RAM 进行的 DMA 传输时、我会得到相同的行为-必须发生从该 RAM 进行的传输、否则就不会再进行 SPI 传输和帧中断。  

    具体来说、如果您配置了缓冲区 ID 11来触发 DMA 传输、除非读取了特定的 MIBSPI RAM、否则不会再读取 DMA。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 V01d:

    如果 MibSPI 是 SPI 主器件、且 TG 缓冲模式为6或2、则如果其 RXRAM 缓冲器的 RXEMPTY 未置位、MibSPI 序列发生器将不会发送数据。 这是预期的。 如果您想让 RXRAM 保持更新、并且不介意数据是否丢失、最好不要使用传输模式6或2。

    如果 MibSPI 处于受控模式、且 TG 缓冲模式为6或2、如果有来自 SPI 主 ISDE 的时钟、即使 RXRAM 缓冲器的 RXEMPTY 未置位、MibSPI 也会发送数据、接收到的新数据将覆盖 RXRAM 的内容。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="45190" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1055726/tms570ls0714-how-to-clear-mibspi-rx-ram-received-flag-status-without-reading-mibspi-ram/3908460 #3908460"]如果数据被读出,新传入的数据将覆盖 RX RAM 中的当前数据,  并且 RXOVRN 标志将被置位。

    抱歉、出现了拼写错误。 "如果数据已读出"应为"如果数据未读出"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="45190" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1055726/tms570ls0714-how-to-clear-mibspi-rx-ram-received-flag-status-without-reading-mibspi-ram/3910184 #3910184"]如果要更新 RXRAM,并且[/引用]

    好的,所以根据这条建议,似乎不可能通过你在那里的陈述来澄清,“你最好不要使用.. "、这意味着人们基本上无法以任何其他方式向 SPI 控制器确认我"处理"了 RXRAM (就像读出一样)、但显式 RAM 读操作似乎是必要的- 我假设您通过最后一个帖子进行确认。

    正如我试图解释的那样,所有想要 的东西都被确认到控制器,就好像它被接收到一样(在需要的时候清除 ISR 标志), 但不访问其存储器(不从 MIBSPI RAM 读取)  (因此我可以比较 MIBSPI RAM 访问实际花费的时间与 ISR 的其余部分)