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.

[参考译文] DRV8718S-Q1EVM:ORVM

Guru**** 2457300 points


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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1330086/drv8718s-q1evm-orvm

器件型号:DRV8718S-Q1EVM

我正在尝试通过  使用 SPI 通信协议在 Arduino 和 DRV8718S-Q1之间建立通信来控制 ORVM (外后视镜) Re

但电机不在旋转,有时 output1和 output2得到相同的电压高低,引脚 in1和 in2是相反的根据代码变化,串行监视器显示通信已建立(电机正在旋转),恳请给出解决方案来旋转电机  

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

    大家好、Shahajahan、

    您是否通过将 IC_CTRL1寄存器中的 EN_DRV 位设置为1来启用该驱动器? 除此之外、如果以默认值选择寄存器位-引脚为 DRVOFF、则应使 DRVOFF_nFLT 引脚为逻辑低电平。

    您还可以通过更改寄存器位将 DRVOFF_nFLT 引脚功能更改为 nFLT、如下所示。 当在 nFLT 中、它将是一个开漏输出、在这个模式下、必须将一个外部上拉电阻器与这个引脚一起使用。

    如果未正确配置这些输出、电桥输出将不会处于活动状态。  

    此致、Murugavel

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

    尊敬的专家:

    我正在初始化一个 CS 引脚 ,它最初是低电平 ,IC_stat1,IC_cntrl1,IC_cntrl2,BRG_cntrl1,IDRV_cntrl1,IDRV_cntrl2,IDRV_cntrl2后, CS 引脚将在功能上升高,并在循环中被调用, 所有输出端口都变高、我连接了电机的 OUT1和 OUT2、并按照控制寄存器的数据表分配数据  

    我通过示波器 CS 引脚长时间变为 低电平、在应用低电平时变为高电平、 电机仍不在旋转、而且我没有将任何一个 OUT1/OUT2设为低电平来旋转电机、因此请解决问题 ASP

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

    尊敬的专家:

    我使用 Arduino Mega 2560作为主器件、并在 J6连接器附近移除0欧姆、以控制 Arduino 的 SPI、我将连接 DVDD、NCS、CLK、SDI、SDO、 nSleep、nFLT、用于 J2中的电源、连接电源  

    是否需要进行任何其他连接来旋转电机?

    此处为代码  

    空 setup()
    {
    SPI.begin();
    引脚模式(CS_PIN、输出);
    PinMode (nSleep、OUTPUT);
    digitalWrite (nSleep、HIGH);
    引脚模式(CLK_PIN、输出);
    pinMode (DVDD、输出);
    digitalWrite (DVDD、HIGH);

    SPI.beginTransaction(SPISettings(1000,MSBFIRST,SPI_MODE0));


    DRVincialization();

    void loop()
    {
    digitalWrite (CS_PIN、LOW);


    SPI.transfer (0x09);
    spi.transfer (0x90);// BRG_cntr_1

    spi.transfer (0x0F);
    SPI.transfer (0x0E);//IDRV_Cntrl_1

    spi.transfer (0x10);
    SPI.transfer (0xDD);//IDRV_Cntrl_2

    digitalWrite (CS_PIN、HIGH);

    空 DRVincialization()
    {
    digitalWrite (CS_PIN、LOW);

    //启用驱动程序
    SPI.TRANSMIT (0x00);//STATUS 使能位
    spi.transfer (0x80);

    //解锁驱动程序
    SPI.TRANSMIT (0x07);// IC_Cntrl_1寄存器地址
    SPI.Transfer (0x86);//解锁命令

    //设置电流控制
    SPI.TRANSMIT (0x0F);// IDRV_Cntrl_1寄存器地址
    spi.transfer (0x0D);//电流控制值

    digitalWrite (CS_PIN、HIGH);


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

    大家好、 Shahajahan、

    如果您使 nSCS 为低电平并执行多次 SPI 寄存器写入(或读取)、然后使 nSCS 为高电平、则它将不起作用。 不会写入任何寄存器、从而导致 SPI 错误。 请参阅数据表中的以下编程信息。 每次寄存器写入或读取时、nSCS 必须为低电平、然后在执行另一个寄存器写入或读取之前为高电平。  

    可从 EVM 网页下载该 EVM 的源代码。  https://dr-download.ti.com/software-development/support-software/MD-GoDz5QXvm0/01.00.00.0B/slvc809b.zip。   

    此致、Murugavel