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-AM243:在 AM243xEVM 模块上开发适用于 TPS274的驱动程序

Guru**** 2391865 points
Other Parts Discussed in Thread: TPS274C65, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1463151/lp-am243-develop-driver-for-tps274-on-am243xevm-module

器件型号:LP-AM243
主题中讨论的其他器件:TPS274C65SysConfig

工具与软件:

嗨、团队:

我的客户编写了驱动启用和禁用通道以及通过 SPI 打开/关闭 AM243xEVM 平台上不起作用的 LED 1_4和5_8的代码。  

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

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

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

谢谢!

Luke  

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

    尊敬的 Luke:

    让我们首先了解一下这里的设置。

    目前、AM243用作控制器、TPS274C65用作从器件/外设。

    现在您要通过 SPI 协议(更具体地说是 MCSPI)向外设发送一些命令。

    当使用 Arduino Uno R4作为控制器时、可以执行此操作、但当使用 AM243 EVM 作为控制器时、无法执行此操作。

    如果我的理解正确、请阅读下面的评论。

    要对此进行调试、我建议您在启动 MCSPI_transfer ()调用之前遵循通用 SPI/MCSPI 设置。

    此外、还需要研究 SysConfig 设置、以便了解设置是否正确。  

    为您提供的行动项目:
    您能否在此处为您的应用附加 SysConfig 文件、并告知我 您是否使用最新的 MCU PLUS SDK 安装程序。

    期待您的答复。

    此致、

    Vaibhav

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

    此外、我希望您仔细阅读我不久前创建的《MCSPI 集成指南》: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1414084/faq-sk-am64b-mcspi-integration-guide

    另请观看 MCSPI 环回等示例、并查看在调用 MCSPI_TRANSFER 之前如何设置事务参数。 您可以在 MCU PLUS SDK 中的以下目录中找到此示例: examples/drivers/mcspi/mcspi_loopback

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

    以下是 MCSPI 和 GPIO 设置:

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

    我还包含一段尝试与  TPS274C65通信的代码

    Here are the settings for SPI and CS. Let me know if you need any further information. If you provide I can send you the screen shots of configuration.
    
    const mcspi = scripting.addModule("/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.$suggestSolution = "SPI1_CLK";
    mcspi2.SPI.D0.$suggestSolution = "SPI1_D0";
    mcspi2.SPI.D1.$suggestSolution = "SPI1_D1";
    
    Chip select
    
    gpio2.pinDir = "OUTPUT";
    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.$suggestSolution = "GPIO1";

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

    仅供参考、

    为了确认 SPI 通信是否有效、我们在同一总线上以相同的 CS、时钟频率和其他设置将 SPI 电机驱动器板连接到 AM243xEVM。 我们可以使用第三方 SPI 电机驱动器来驱动。 但是、TPS274不具备任何功能。  

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

    尊敬的 Kumar 先生:

    我已经查看了您的指南和示例。 澄清一下、我们一直在使用 MCSPI 在 AM243x 上成功驱动许多器件。 但仅 TPS274C65有问题。 正如我在 TPS274C65博文 https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1461789/tps274c65evm-develop-driver-for-tps274-on-am243xevm-module 中所述

    我们完成了多个步骤来验证设置。

    1.我们的硬件设置已经过验证、可以正常工作、但使用 Arduino Uno R4来驱动 TPS274C65。  

    2.在相同的 AM243xEVM 设置下,我们连接了 Trinamic SPI 电机驱动器,我们正在成功地驱动该芯片。  

    3.当我们  在上述设置下使用 TPS274C65时、它不会运行。  

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

    Jamil、您好!

    我已经查看了您随附的 SysConfig 文件、并通读了您在上面引用的 post/E2E 中的所有评论。

    以下是我的想法。

    我假设您目前使用 SPI1驱动 TPS、但除此之外、我看到 SPI0设置不正确。

    请参阅随附的屏幕截图。

    您可以看到、如果您将 D0设置为输入选择、则不能将"D0 TX Enable"字段设置为"TX Enabled"、因为应将该字段设置为"TX DSi56ed"。

    此外、我还看到您已经能够根据您上次的 E2E 参考向0x4D 寄存器发送特定的值。

    请在下面回答几个问题:


    1. 请根据我的上述要求和说明更正 MCSPI SPI0设置。
    2. 请告诉我您必须写入 TPS274的顺序的值:
      1. 如果可以指定需要发送的值的表/列表、例如:要发送/写入寄存器0xreg1处 TPS274的值为10、11、12。 依此类推。 如果您可以详细指定、我可以编写一段代码供您在设置时尝试。
    3. 此外、我不明白为什么我们需要 GPIO 来设置 CS 线路的低电平/高电平、因为这将由 MCSPI 驱动器在内部进行处理。 因此、当调用 MCSPI_TRANSFORIT () API 时、它会处理将 CS 线路设置为低或高预/后事务。  

    此致、

    Vaibhav

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

    我们在该运动中未使用 MCSPI SPI0、因此它无关紧要。 我们这里有用于探索目的。 但我会按照建议进行更正。  

    我们仅使用 SPI1来选择 TPS274。

    MCSPI 驱动器 CS 线路对我们来说从来都不起作用。 我们已配置它、但无法顺利驱动任何外设。 也许我们可以单独打开这个讨论。 为了驱动 e TPS274、我们最初将 MCSPI 驱动器配置为 CS 线路。 另一个原因是、我们可能会在同一 SPI 实例上驱动更多外设、因此最好坚持设置 GPIO。

    我们正在写入寄存器: 0x1E 0x1F  和0x1D;   

    ox4D 会打开和关闭 TPS274上的 LED、但 TPS274上不存在该寄存器地址。

    在以下 代码中:  

    xferh (DEVADR、TPS274C65_LED_1_4_CTL_REG、HEATER_OUT);//打开红色 LED 以指示过热
    xferh (DEVADR、TPS274C65_LED_5_8_CTL_REG、redled_out);//关闭红色 LED 以指示过热
    XFERH (DEVADR、HEATER1、HEATER_OUT);//打开加热器1

    TPS274C65_LED_1_4_CTL_REG  为0x1E

    TPS274C65_LED_5_8_CTL_REG 为0x1F

     HEATER1 为0x21

    如果我们有一个 MS 团队呼叫、可能会更好。 如果您提供您的电子邮件、我可以安排通话。  

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

    您好!

    [报价用户 id="594869" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1463151/lp-am243-develop-driver-for-tps274-on-am243xevm-module/5615442 #5615442"]我们只使用 SPI1来转换到 TPS274。[/QUOT]

    我想您是要写:"与 TPS274通信"

    我知道您在此处使用 SPI1 (主域)。

    我已经阅读了 TPS274的数据表、看到了以下内容。

    是否正在尝试打开寄存器0x1E 下述的所有 LED?

    简单的操作是将值15发送到寄存器0x1E、该寄存器应该执行该操作。

    但是,然后我遇到了以下:

    您在上表中使用的写入和读取组合是哪种?

    此致、

    Vaibhav

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

    我正在写入1E (绿色 LED)和1F (红色 LED)寄存器和1D 寄存器(用于开启加热器的输出端口电流) 以开启 LED 和输出电流。 是的、要进行写入、您必须设置写入 PIT、这是器件地址字节的一部分。 我的地址是 B0 (1011 -> 101器件地址5和1用于写入)。 这段代码已经过验证。 我们在 Arduino UNO 4硬件上运行它、它可正常运行、但不能与 AM243配合使用。

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

    请 与    TI 电源管理组的 Patrick Shalton 和 Timothy Logan 协调、以帮助解决此问题。  

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

    您好!

    主题专家目前不在办公室。 请期待延迟回复。

    此致、

    Tushar

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

    Jamil、您好!

    下面的链接中已解决了该问题、我将关闭此主题。

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

    此致、

    Anil。