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.

[参考译文] MSPM0G3507:对于 I2C DMA 重复块传输模式、如何设置 MFIFOSR 寄存器中的 RXFIFO COUNT 位?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1356094/mspm0g3507-for-i2c-dma-repeated-block-transfer-mode-how-to-set-the-rxfifo-count-bit-in-the-mfifosr-register

器件型号:MSPM0G3507

请提供 在 MFIFOSR 寄存器(I2C 控制器 FIFO 状态寄存器)中设置 RXFIFO 计数位的步骤

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

    Lavina、您好!

    RXFIFO 计数位 对 DMA 重复块模式没有影响。 它仅显示当前 RXFIFO 中存储了多少数据。 它是只读的。

    块传输大小无法设置为大于8、否则将传输一些意外数据。 也可以使用重复单次传输模式。

    用户可以设置以下寄存器来配置 DMA 的 RXFIFO 数据触发电平。

    B. R、

    萨尔

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

    目前处于通过 DMA 读取 I2C 数据的过程中、在单次传输模式下、我最多可以读取8个字节。

    但如果我需要读取超过8个字节、我已尝试启用重复单次传输模式、但我看到的是、即使数据正在传输到 TI Launchpad、RXFIFO 只能接收一个字节、而 RXFIFOCNT 仍保留为0x00。

    如何使接收 FIFO 计数为8?

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

    Lavina、您好!

    但是如果我需要读取超过8个字节,我尝试启用重复的单次传输模式

    在这种情况下、单次传输模式也适用。 设置正确大小的 DMA 就可以了、例如、16/32/...

    应如何使接收 FIFO 计数为8?

    如果启用 DMA、则接收 FIFO 计数将不会达到8、因为 DMA 会首先传输数据、而计数小于您设置的值。 如果您将 RX 触发电平设置为1、则由于 DMA 传输 RXFIFO 中的数据、它始终为0。

    我认为下面的主题为您提供了一个示例项目、可供进一步测试。

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1352528/mspm0g3507-could-you-please-suggest-the-steps-to-read-approx-100bytes-of-data-via-i2c-dma

    B.R.

    萨尔