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.

[参考译文] TMS320F280039C:基于 I2C 的 PMBus 示例中是否需要 I2CA 和 I2CA_ FIFO ISR?

Guru**** 2525580 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1080406/tms320f280039c-are-both-i2ca-and-i2ca_-fifo-isr-required-in-the-pmbus-over-i2c-examples

部件号:TMS320F280039C

亲爱的香榭丽舍,

我是向客户提出这一要求的。

用户正在考虑在其项目中参考我们的基于 I2C 的 PMBus 示例。

主  示例和从属示例中似乎都使用了 I2CA ISR 和 I2CA_ FIFO ISR。

为什么需要这两种 ISR?

如果用户想要将我们的 PMBus 包含在 I2C 库中,他们是否还需要同时使用两个 ISR?

因为用户使用嵌套 ISR,所以当他们使用这两种 ISR 时,哪一种应该是之前的 ISR,或者应该是相同的优先级?

黄韦恩

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

    韦恩

    [引用 userid="4952" url="~/support/icles/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1080406/tms320f280039c-both - i2ca 和 i2c_- fifo - ISR -必需的 PMBus-about-i2c-examples[此处]?

    是的。 需要两个 I2C ISR 例程。 状态机取决于两个 ISR 例程。

    I2C ISR 处理器      -在停止条件下触发,并准备好传输

    I2CFIF0 ISR 处理器-由 RX FIFO 中断触发

    [引用 userid="4952" url=~ë/support/icc-nother-group/CC2000 /f/c2000微控制器-forume/1080406/tms320f280039c-both -i2ca and -i2c_ fifo-ISR 必需的 PMBus-about-i2c-besting 示例],他们应该在哪些情况下使用这些示例,或者应该在哪些情况下使用,因为它们应该是相同的,或者应该在何时使用?]

    CPU (INT8) I2C 中断线路中的 I2C 中断和 I2C FIFO 中断。 但是,I2C 中断比 I2CFIFO 中断具有更高的优先级

    此致,

    马诺伊

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

    亲爱的 Manoj:

    关于优先事项,让我更清楚地说明。

    我知道 I2CA 是 INT8.1,I2CA_FIFO 是通过硬件优先级选择的 INT8.2,默认情况下不会嵌套中断。

    在此,用户使用软件嵌套 ISR,因为他的项目中有许多 ISR,他希望优先级较高的 ISR 可以中断优先级较低的 ISR。

    在我们的示例中,因为只有两个 ISR,并且没有使用软件嵌套 ISR。 我们可以假定它们可以设置为相同的优先级,并让硬件优先级-默认情况下运行 INT8.1和 INT8.2。 在这种情况下,如果先维修 INT8.2 ISR,则 INT8.1 ISR 门槛需要等到 INT8.2 ISR 完成。

    我们想知道 ,即使用户可以通过软件更改其优先级,这种情况(具有相同软件优先级的 INT 8.1/8.2)是否仍是我们所建议的。

    或者,我们是否建议使用软件嵌套让 INT8.1在 INT 8.2首先得到服务以获得更好的性能时中断 INT8.2?

    黄韦恩

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

    韦恩

    I2C 中断(8.1)仅在停止条件/传输数据就绪中断时触发。 因此,用户软件嵌套以允许 INT8.1而不是 INT8.2正常,因为 RX FIO 接口用于从 RX 缓冲区读取 FIFO 结果。

    此致,

    马诺伊

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

    亲爱的 Manoj:

    我已将这种基于 I2C 的 PMBus 示例集成到另一个代码中,许多嵌套 ISR 同时运行。

     令我惊讶的是,I2CFIF0 ISR 处理器(INT8.2) 必须在软件优先级上先于 I2C ISR 处理器(INT8.1),才能使其保持良好的连续运行。

    如果我将 I2C ISR 处理程序(INT8.1)设置为等于 或早于 I2CFIF0 ISR 处理程序(INT8.2),则会卡住。

    供您参考。

    到目前为止,我只测试了这些测试,这些测试可以基于此帖子很好地运行。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1081943/tms320f280039c-failure-when-testing-pmbus-over-i2c-examples-continuously/4010116#4010116

    韦恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="4952" url=~ë/support/icc-nother-group/CC2000 /f/c2000微控制器-forume/1080406/tms320f280039c-e-both-i2ca 和 i2c_-fifo-ISR-require-In-PMBus-over-i2c--and-i2c/1040148]#1040148]

     令我惊讶的是,I2CFIF0 ISR 处理器(INT8.2) 必须在软件优先级上先于 I2C ISR 处理器(INT8.1),才能使其保持良好的连续运行。

    如果我将 I2C ISR 处理程序(INT8.1)设置为等于 或早于 I2CFIF0 ISR 处理程序(INT8.2),则会卡住。

    [/引用]

    您能否共享修改后的代码,使 INT8.2优先于 INT8.1?