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.

[参考译文] LP-AM263:是否有 AM263x SPI 采样/参考代码可用于配置 SPI 器件寄存器?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1185742/lp-am263-is-there-a-am263x-spi-sample-reference-code-to-configure-spi-device-register

器件型号:LP-AM263
主题中讨论的其他器件: DRV8350

您好!

 我的项目将使用 AM263x MCU 配置 TI TPS653850A SPI 器件。

即在  SAFETY_CHECK_CTRL 寄存器中将 ENABLE_DRV 设置为"1"。。

窗口中是否有示例代码供参考?

或者、我的 EVM 是 LaunchPad 器件型号:LP-AM263、是否有用于 评估的 SPI 小板? 我可以将其导入以供参考?  

谢谢

Suven

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

    Suven、您好!

    适用于 AM263x 的 MCU+ SDK 中提供了 SPI 主器件示例: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-r5FY9rRaGv/08.05.00.24/mcu_plus_sdk_am263x_08_05_00_24-windows-x64-installer.exe

    有关详细信息、请参阅以下 URL:

    AM263x MCU+ SDK:8位 MCSPI 性能(TI.com) 和

    AM263x MCU+ SDK:32位 MCSPI 性能(TI.com)

    遗憾的是、我们目前没有外部 SPI 器件可供您连接到 AM263x LP。

     您可以尝试获取 TPS653850A 的评估板。

    此致、

    Ming

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

    尊敬的 Ming:

     我有 SDK 和您提到的两个示例、但我仍然不知道通过它们访问从 SPI 器件(TPS653850A)的寄存器?  您能帮我提供一个基于这些示例的示例吗?

    或者、如果 TI 有  TPS653850A 的示例代码、我可以将其导入以供参考?

    谢谢

    Suven

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

    Suven、您好!

    我不熟悉 TPS653850A、但所有 SPI 器件的行为都应相同。 您需要将函数定义为浮动:

    int32_t rw_tps653850_register (uint16_t r_w、uint16_t reg_addr、uint16_t reg_val、uint16_t* read_val)

      MCSPI_Transaction spiTransaction;
      uint16_t mcspiTxBuffer、mcspiRxBuffer;
      int32_t transferOK;

      /*启动 SPI 传输参数*/
      spiTransaction.channel = 0U;
      spiTransaction.count = 1;
      spiTransaction.txBuf =&mcspiTxBuffer;
      spiTransaction.rxBuf =&mcspiRxBuffer;
      spiTransaction.args =空;

      mcspiTxBuffer = r_w |(reg_addr << DRV8350_ADDR_SHIFT)| reg_val;
      transferOK = MCSPI_transfer (gMcspiHandle[CONFIG_MCSPI0]、&spiTransaction);


      if (read_val!= NULL)
      * read_val = mcspiRxBuffer;

      退货转让;

    其中  

    uint16_t r_w 是读取/写入标志、

    uint16_t REG_addr 是 SPI 器件地址、

    uint16_t REG_val 是要写入 REG_addr 的值、

    uint16_t* read_val 是读取数据缓冲区的指针。

    以下是对上述定义函数的调用、用于执行 SPI 读取或写入:

    /*写入控制寄存器*/
    rw_tps653850_register (0、CONTROL_ADDR、CONTROL_VAL、NULL);

    /*读回控制寄存器以检查是否正确*/
    rw_tps653850_register (0x8000、CONTRAL_ADDR、0、Registeredval[CONTRAL_ADDR]);

    此致、

    Ming

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

    尊敬的 Ming:

    非常感谢您对模板的描述。

    如以下 tps63850规范所示、该器件使用24位 SPI 帧。

    1、我是否知道我是否应该更改 spiTransaction.count = 2 、因为 tps63850正在使用24位 SPI 帧?

    2、 spiTransaction.txBuf 的格式是什么? 它是"冗余字节+ CMD 字节+数据字节+ MCRC 字节"还是 "CMD 字节+数据字节+ MCRC 字节+冗余字节"?

    3、  spiTransaction.rxBuf 的格式是什么?  它是"冗余字节+ STAT 字节+ R 字节+ SCRC 字节"还是 " STAT 字节+ R 字节+ SCRC 字节+冗余字节"?

    谢谢

    Suven

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

    Suven、您好!

    我在上一帖子中发送给您的函数:

    mcspiTxBuffer = r_w |(reg_addr << DRV8350_ADDR_SHIFT)| reg_val;

    使用16位数据格式:11位用于 CMD、5位用于数据(用于 DRV8350)

    在这种情况下、它应该是8位 CMD 和8位数据。 SPI 硬件应添加 RVC 和 CRC。

    简   而言之、spiTransaction.txBuf 和 spiTransaction.rxBuf 均为16位无符号整数、而 spiTransaction.count 保持为1。

    此致、

    Ming

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

    尊敬的 Ming:

    谢谢、这对我真的很有帮助。 你的解释更清楚。

    我认为"example.syscfg"中的设置应该与 mcspi_performance_8bit 演示代码不同。

    您能否为我提供 AM263x example.syscfg 以供参考、该器件在 SPI0中连接了从器件?  

    谢谢

    Suven

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

    Suven、您好!

    对于不同的数据宽度、我认为 example.syscfg 没有什么不同。 它是对 MCSPI_setDataWidth()的调用决定了数据宽度。 它在 mcspi_performance_32bit.c 和 mcspi_performance_8bit.c 中被调用  

    此致、

    Ming  

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

    尊敬的 Ming:

     您是说我可以为      我的项目使用 mcspi_performance_32位和 mcspi_performance_8bit 中的 example.syscfg 之一( SPI0中有一个 SPI 从器件)吗?

    我发现其中的一些设置不同(即 TX 的 TR 模式和 FIFO 触发电平)。

    这就是为什么我要求一个示例.syyconfig 设置、其中 SPI 从器件已连接以供参考。

     谢谢

    Suven

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

    Suven、您好!

    我认为  mcspi_performance_8bit 的 example.syscfg 适用于您的情况。

    此致、

    Ming

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

    尊敬的 Ming:

     非常感谢

    Suven