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.

[参考译文] TMS320F280049C:主控模式下的 SPI 不工作

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/971666/tms320f280049c-spi-in-master-mode-is-not-working

器件型号:TMS320F280049C
主题中讨论的其他器件:TIC12400

我正在使用 SPI_ex4_EEPROM.c 驱动程序库示例。 我已经探测了我的时钟、它正在工作。  我正在 MOSI 上发送数据、但探测器上未显示数据。 我正在使用8位和1MHz SPI 时钟。我正在连接我的代码。 感谢您访问 advance.e2e.ti.com/.../2620.main.ce2e.ti.com/.../device.he2e.ti.com/.../7701.device.c

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

    沃赫拉、

    您使用的是哪个串行 EEPROM? 该示例是为了与串行 EEPROM AT25128/256配合使用而编写的。

    很可能、您可能需要将此代码修改为不同的 EEPROM。

    此外、通过查看您的以下代码、您似乎正在传输0x00。 因此、您应该只能在 SPIMOSI 上看到低电平信号。

           SPI_writeDataBlockingNonFIFO (SPIA_BASE、 寄存器[0]);
           SPI_writeDataBlockingNonFIFO (SPIA_BASE、 寄存器[1]);
           SPI_writeDataBlockingNonFIFO (SPIA_BASE、 寄存器[2]);
           SPI_writeDataBlockingNonFIFO (SPIA_BASE、 寄存器[3]);

    Regawrds、

    曼诺伊

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

    我已编辑了 tic12400的 SPI_EEPROM 代码。 我能够读取器件 ID、但当我尝试写入任何寄存器并将其读回时、它无法正确回读。

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

    沃赫拉、

    根据 tick12400 数据表中的图33、

    DEVICE_ID 的偏移地址值为1、因此、您需要配置 SPI 来传输(在 MOSI 引脚上) 32位、如下所示

    发送位31:24     0x02的第1个字节

    发送位23:16   0xxx 的第2个字节(无关)

    发送位15:8   0xxx 的第3个字节(无关)

    发送位7:0         0xxx 的第4个字节(无关)

    CRC 的偏移地址值为3、因此您需要配置 SPI 来发送(在 MOSI 引脚上) 32位、如下所示

    发送位31:24     0x06的第1个字节

    发送位23:16   0xxx 的第2个字节(无关)

    发送位15:8   0xxx 的第3个字节(无关)

    发送位7:0         0xxx 的第4个字节(无关)

    检查 SPIMOSI 引脚并查看是否正在传输正确的地址。 除非您得到正确的答案、否则读取命令将无法正常工作。

    此致、

    曼诺伊

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

    我只是这样写的。 我能够正确读取器件 ID 和 CRC 寄存器。 当我向 IN_EN 寄存器写入0xFFFFFFf 时、我无法正确回读 IN_EN 寄存器。

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

    沃赫拉、

    [引述]我只是这样写的。 我能够正确读取器件 ID 和 CRC 寄存器。 当我向 IN_EN 寄存器写入0xFFFFFFf 时、我无法正确回读 IN_EN 寄存器。 [/报价]

    这个问题需要由 tick12400 团队中的某个人回答、因为我 之前没有在 tick12400上工作过。 我已将此帖子重定向给他们。

    我希望他们能在2-3个工作日内返回。

    此致、

    曼诺伊

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

    沃赫拉、

    您尚未提供有关 SPI 写入命令的任何详细信息。 根据数据表、这是写入 IN_EN 寄存器时需要传输的数据。 您是否确保按如下所示传输写入命令? 您的 SPIRXBUF 内容是什么? 它是否报告 SPI_FAIL 位设置? 我还强烈建议您分享 SPI 引脚的示波器范围。

    IN_EN 的偏移地址值为1B、因此、您需要配置 SPI 来传输(在 MOSI 引脚上) 32位、如下所示用于写入命令。

    发送位31:24     0xB7的第1个字节(位31:写入命令|位24为"1")

    发送位23:16   0xFF 的第2个字节

    发送位15:8   0xFF 的第3个字节

    发送位7:0         0xFE (奇偶校验0)的第4个字节

    此致、

    曼诺伊

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

    我探测信号、当我读取 MISO 引脚上显示器件 ID 数据、但当我写入 IN_EN 寄存器时、MOSI 不显示任何信号... 我认为 MOSI 引脚或配置存在一些问题。

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

    您能否提供您在探测引脚时看到的信号以供我们审阅?  如果不能检查波形是否有错误、很难帮助确定问题的根源。

    当您说"我认为 MOSI 引脚配置存在问题"时、您是否意味着您从未在该引脚上使用探头看到任何信号?  您是否已检查是否启用了正确的引脚并将其配置为输出?

    此致、

    Jonathan

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

    沃赫拉、

    我已经听过你的回声了。 您的问题是否已解决? 我可以关闭此主题吗?

    此致、

    曼诺伊

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

    我的问题已经解决了...我在传输4个字节后读取数据、但实际上我们只需要在一次传输后读回数据。

x 出现错误。请重试或与管理员联系。