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.

[参考译文] TMS320F2808:从闪存运行时 SPI 发送缓冲器损坏

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1040627/tms320f2808-spi-transmit-buffer-becoming-corrupted-when-running-from-flash

器件型号:TMS320F2808

我开始将多个项目合并在一起、因为我们的项目将需要 CAN、SPI 和 I2C (以及其他项目)通信。 我已经 从 RAM 成功运行了所有 CAN、SPI 和 I2C F2808项目、现在已经被整合到闪存中。 我从 SPI 和 CAN 开始、它们从闪存运行。 我已经添加了 I2C 项目、但现在我收到了损坏的数据。

在 I2cfifo_interrupts 文件中,有 一个 TestI2CEEPROM ()函数 ,在该函数中,TxMsgBuffer 用0x00填充到0x3F。 当 I2C_MasterWrite (&EEPROM)被执行时、 TxMsgBuffer 会损坏、当使用逻辑分析仪捕捉时、会观察到以下情况:写入时忽略其他4个字节-"corrupted"字节。 请参阅提供的图像。

我已从 CC 环境中添加了图片和代码的 zip 文件。 我还包含 了 DSP280x_common 和 DSP280x_headers、因为这些在我合并项目时会被改变

e2e.ti.com/.../Example_5F00_F2808_5F00_Flash.zip

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

    因此、在我看来、我在 InitI2C 函数中启用了 RXFFRST 和 TXFFRST、但只应在预期的 Tx 或 Rx 时启用。

    有没有进一步说明为什么在 TX 或 Rx 之前设置这些参数? 控制器如何保持"监听"模式?