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.

[参考译文] TPS274C65EVM:在 AM243xEVM 模块上开发适用于 TPS274的驱动程序

Guru**** 2391415 points
Other Parts Discussed in Thread: TPS274C65

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1461789/tps274c65evm-develop-driver-for-tps274-on-am243xevm-module

器件型号:TPS274C65EVM
主题中讨论的其他器件:TPS274C65

工具与软件:

我们编写了相应的代码、可驱动启用和禁用通道、并通过 SPI 打开/关闭 AM243xEVM 平台上不起作用的 LED 1_4和5_8。  

我们首先在 Arduino Uno R4上开发了代码、用于快速验证硬件连接和设置、并了解 TPS274C65 EVM-USB 板的功能。 这很好。 我们可以打开/关闭通道、看到适当的电流驱动通道、打开/关闭 LED 以及配置电流。 我们可以回读寄存器。

但是、相同代码不能在 AM243xEVM 上运行。 当然、SPI 驱动器是不同的;在 AM243xEVM 上、我们使用的是 TI 的 SPI 驱动器。 为了确认我们的驱动器是否正常工作、我们已将 SPI 电机驱动器芯片连接到同一总线上的 AM243xEVM、甚至采用相同的 CS、时钟频率和其他设置。 我们可以使用第三方 SPI 电机驱动器来驱动。 但是、TPS274不具备任何功能。  

我们目前通过 SPI 使用2MHz 时钟频率。 我们已经检查并回顾了设置和实现。 相同的设置适用于 Arduino、但不适用于 AM243。 我们正在寻找有关调试的任何东西或想法。  

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

    尊敬的 Jamil:

    您在 AM243xEVM 上使用哪些 SPI 时钟极性和相位设置?

    谢谢!

    Patrick

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

    这是 SPI 和 CS 的设置。 如果您需要任何进一步的信息、请告诉我。 如果您提供、我可以向您发送配置的屏幕快照。

    const mcspi = scripting.AddModule ("Scripting"/drivers/mcspi/mcspi、{}、false);

    const mcspi2 = mcspi.addInstance();

    mcspi2.$name ="CONFIG_MCSPI1";
    mcspi2.initDelay ="8";
    mcspi2.spi.$assign ="SPI1";
    mcspi2.child.$name ="drivers_mcspi_v0_mcspi_v0_template1";
    mcspi2.mcspiChannel[0].$name ="CONFIG_MCSPI_CH1";
    mcspi2.mcspiChannel[0].bitrate = 2000000;
    mcspi2.mcspiChannel[0].csn.pu_pd ="pu";
    mcspi2.mcspiChannel[0].csn.$used = false;

    mcspi2.udmaDriver = udma1;

    mcspi2.spi.CLK.$inductionestSolution ="SPI1_CLK";
    mcspi2.spi.D0.$intrecestSolution ="SPI1_D0";
    mcspi2.spi.d1.$inductionestSolution ="SPI1_D1";

    芯片选择

    GPIO2.pinDir ="输出";
    GPIO2.$name ="SPI1_CS1";
    GPIO2.trigType ="Both_edge";
    gpio2.defaultValue ="1";
    GPIO2.GPIO.gpioPin.pu_PD ="pu";
    GPIO2.GPIO.gpioPin.$ASSIGN ="SPI1_CS1";

    GPIO2.GPIO.$inductionestSolution ="GPIO1";

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

    CS

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

    其他信息:我可以将值0x01、0x02、0x04、0x08写入 TPS274C65 寄存器0x4D、该值不能用于查看红色 LED 根据设置的值亮起、SW 通道启用、我们注意到几个加热器打开。  

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

    尊敬的 Jamil:

    很抱歉耽误您的时间、您能不能把帧格式更改为 POL0、PHA1、看看是否可以用?

    谢谢!

    Patrick

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

    我在提出问题之前尝试过 POLO, PHA1。 它没有工作。 我将在今天晚些时候再试一次、并将与您联系。  

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

    尊敬的 Jamil:

    明白了、请告诉我结果。

    谢谢!

    Patrick

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

    Jamil、您好!

    根据上述信息、您似乎是手动控制 CS 线路、而您不是使用驱动程序控制 CS 线路。  

    手动控制 CS 而不是 MCSPI 驱动器的原因是什么?

    在 SOC 端、哪些数据大小配置为8位或16位或32位、TPS 端也支持相同的数据大小?

    您好、Patrick、有什么理由建议客户使用 POLO, PHA1。

    TPS EVM 是否支持哪种极性?

    此致、

    Anil。

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

    Jamil、您好!

    请查找今天的会议记录。

    JAMIL 一侧的下一个项目:  

    1.   使用3引脚模式进行相同的测试、并  从 syscfg 中禁用 CS 线路

    2.将 SPI 配置为模式1 (POL0、PHA1)

    3.如果上述建议不可行,请监控 CS 线路和数据线路。

    此致、

    Anil。

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

    Patrick、您好!

    如果您或您的团队已经将 TPS 与 AM263或任何其他 Sitara 器件进行了连接、请在此处附加代码。

    此致、

    Anil。

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

    Anil、您的建议有效。 我做了一些更改:

    1.从头开始重新创建项目。

    2.将模式更改为 POLO, PHA1。

    3.在 MCSPI 事务中启用 CS。  

    4.删除了我们为了处理与其他第三方外设相关的问题而执行的额外 MCSPI_TRANSFER。 现在仅进行单次传输。  

      transferOK = MCSPI_transfer (gMcspiHandle[CONFIG_HEATERSPI]、&hSpiTransaction);

    感谢您的支持。  

    请将该主题标记为已解决并关闭。