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.

[参考译文] DRV8452:DRV8452dwr SPI 通信问题

Guru**** 2390755 points
Other Parts Discussed in Thread: DRV8452

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1470186/drv8452-drv8452ddwr-spi-communcation-problem

器件型号:DRV8452

工具与软件:

尊敬的 TI 团队:

我开始设计 DRV8452DDWR 驱动器、IC 为我的应用旋转步进电机。

我有自己的定制电路板、DRV8452DDWR 驱动程序 IC 与微控制器一起组装在定制电路板上。

我已尝试使用 DRV8452DDWR 驱动程序 IC 上的硬件配置、它可以正常工作。

在我想使用 SPI 通信的应用中。 我在尝试 SPI 通信电机不旋转时、我正在 SDO 和 SDI 线路上获取数据。 我读取 FAULT (地址= 0x00)寄存器时得到了响应 11. 000000b ( 第6个位置是 SPI_ERROR )但我无法确定问题是什么。

SPI 寄存器设置:

CTRL1控制寄存器:0x048F
CTRL2控制寄存器:0x0502

ATQ_CTRL18寄存器:0x3000

请从任何寄存器设置或硬件端以及 SPI 通信方面帮助我提出建议。

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

    尊敬的 Naga:

    感谢您的提问。

    我的团队伙伴将对此进行调查、然后回复给您。

    谢谢!

    Ibinu

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

    尊敬的 Naga:  

    感谢您发送编修。 我正在查看您的问题并回复您。

    此致、  

    Mojtaba。

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

    您好、Naga:

    "您好、TI 团队:

    我开始设计 DRV8452DDWR 驱动程序 IC、为我的应用旋转步进电机。我使用自己的定制电路板、DRV8452DDWR 驱动程序 IC 与微控制器一起组装在定制电路板上。  我已尝试使用 DRV8452DDWR 驱动程序 IC 上的硬件配置、它可以正常工作。

     在我想使用 SPI 通信的应用中。 我在尝试 SPI 通信电机不旋转时、我正在 SDO 和 SDI 线路上获取数据。 我读取 FAULT (地址= 0x00)寄存器时得到了响应  11. 000000b ( 第6个位置是 SPI_ERROR )但我无法确定问题是什么。"

    您能否向我们提供有关您创建的 SCLK 和 nSCS 信号的更多信息。 此外、如果可能、您是否会分享您的原理图以检查您的硬件设计是否正常。  为了解决您的问题、即您共享的故障状态 11. 000000b 指示 SPI 协议错误、例如 SCLK 脉冲多于所需、或者缺少 SCLK、即使 nSCS 为低电平。

    要成功运行 SPI、必须进行完整的16个 SCLK 周期、标准帧的事务才有效。 否则、会报告帧错误(SPI_ERROR)、如果是写入操作、则数据会被忽略。

    请检查数据帧的以下条件:

    • 当 nSCS 引脚变为低电平和高电平时、SCLK 引脚必须为低电平。
    • nSCS 引脚在两帧之间的高电平时间应至少为500ns。
    • 当 nSCS 引脚被拉为高电平时、SCLK 和 SDI 引脚上的任何信号都将被忽略、并且 SDO 引脚处于高阻抗状态(Hi-Z)。
    • 来自器件的 SDO 上的数据会在 SCLK 的上升沿传播、而 SDI 上的数据会由器件在 SCLK 的下一个下降沿捕获。

    "SPI 寄存器设置:

    CTRL1控制寄存器:0x048F、 CTRL2控制寄存器:0x0502、 ATQ_CTRL18寄存器:0x3000

    请从任何寄存器设置或硬件端和 SPI 通信方面帮助我提出建议。"

    CTRL1寄存器显示器件半桥已启用、驱动器处于智能调优纹波控制模式、并且正确。

    不过、 CTRL2寄存器为00000010 显示了非循环1/2步进 MICROSTEP_MODE、其余为低电平。 SPI_DIR/SPI_STEP 应处于高电平、以使输出跟随 SPI 寄存器中的 DIR 位/ STEP 位。

    因此、调整 CTRL2控制寄存器:00110010b

    如果您有任何问题、敬请告知。  

    此致、

    Mojtaba。

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

    尊敬的 Mojtaba:

    感谢您的答复、

    如您所述、我更改了 CTRL2寄存器、并附上了 SPI 通信 SDI 和 SDO 线路的图像。

    https://i.imgur.com/v73Whx8.jpeg

    但电机仍未运行。 请提供 SPI 寄存器设置以运行电机。  

    以下是 FAULT 寄存器的响应。

    谢谢!

    Nagababu。

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

    大家好、团队成员:

    我在等你的答复。

    请检查以上提供的详细信息。

    谢谢!

    Nagababu

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

    尊敬的 Naga:  

    感谢您分享这些信息。  根据捕获的示波器、nSCS、SDI (SPI_+MOSI)未遵循正确的模式。 请考虑以下标准并重新测试。  

    1- SPI 时序要求:

    2-在设备上写入事务的示例。

    3 - SPI 格式

    串行数据输入(SDI)字由16位字组成、即8位命令(A1)后跟8位数据(D1)。 串行数据输出(SDO)字包含8位状态寄存器、其中带有故障状态指示(S1)、后跟一个报告字节(R1)。 图7-49显示了控制器和 SPI 目标驱动程序之间的数据序列。

    如果您在 SPI 方面仍有问题、请考虑上述所有标准并向我提供波形。 谢谢你。

    此致、  

    Mojtaba。

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

    您好!

    感谢您的答复、

    我尝试了以上您建议的解决方案。 但电机仍未运行。 我看了照片。

    请检查图像、并告知我。

    请告诉我、需要多高的时钟频率。

    谢谢!
    Nagababu。

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

    尊敬的 Naga:  

    请分享一下电路板原理图供我们查看。 此外、还请分享 STEP 信号。  另外、我没有看到 nSCS 引脚在数据后没有切换。  nSCS 引脚在两帧之间的高电平时间应至少为500ns。

    仍然是 SPI 错误高电平吗?  在数据表中、SPI_ERROR:指示 SPI 协议错误、例如 SCLK 脉冲多于所需数量、或者缺少 SCLK、即使 nSCS 为低电平也是如此。  

    "请告诉我、需要多高的时钟频率。"

    请 按照下表生成 SPI 信号。

    此致、  

    Mojtaba。

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

    尊敬的 Mojtaba:

    感谢您的答复。

    SPI 通信和 SCLK 的时钟频率。

    使用哪种 SPI 模式将数据从主器件传输到从器件。

    3.无法在此支持页面上共享原理图。 请告诉我其他方法来共享 原理图。

    谢谢!

    Nagababu。

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

    尊敬的 Naga:

    感谢您的提问。

    "1. SPI 通信和 SCLK 的时钟频率。"

    如下表所示、SCLK 最小周期为100ns。 因此、最小 SCLK 频率为10MHz。

     此外、SPI 标准格式是16位、结构如下。 因此、nSCS 频率为10MHz /16 = 625kHz。 nSCS 为低电平有效  

    SPI 需要以下所示的特定时序模式。  

    例如:

    当 nSCS 引脚变为低电平和高电平时、SCLK 引脚必须为低电平。

    CS 引脚变为高电平。 •nSCS 引脚在两帧之间的高电平时间应至少为500ns。

    必须进行完整的16个 SCLK 周期、标准帧的事务才有效;或者、对于具有"n"个外设器件的菊花链帧、必须进行16 +(n x 16)个 SCLK 周期、事务才有效。 否则、会报告帧错误(SPI_ERROR)、如果是写入操作、则数据会被忽略

    tsu_nSCS:nSCS 输入设置时间应最短为50ns。

    "2.应使用哪种 SPI 模式将数据从主器件传输到从器件。"

    SCLK 在低电平时空闲 、 在 SCLK 引脚的下降沿捕捉数据。

    "3.无法在此支持页面上分享原理图。 请告诉我其他一些方法来共享 原理图。"

    Pleasr 捕获屏幕快照并将其附加到帖子上。  

    1 -此外、请读取寄存器0x00、 0x04和0x05数据并与我共享。  

    2-请 在 SPI 通信期间检查输出电压端子。  

    此致、  
    Mojtaba。

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

    尊敬的 Mojtaba:

    感谢您的答复。

    注意:最后会启用电机输出线圈。 并且未看到 SPI_ERROR。

    SPI 寄存器设置:

     CTRL1控制寄存器:0x04、0x8F。

    CTRL2控制寄存器:0x05、0x02。

     ATQ_CTRL18:0x30、0x00。

    4. 故障:0x40、0x00。

    注意:在 CTRL2控制寄存器中、我加载00000110b、因为我从 GPIO 引脚提供方向信号、并且对于 STEP_IN 信号引脚也是如此(Fstep = 1kHz)

    正如您所问的、我将读取 寄存器0x00、0x04和0x05。 请在下面找到相同的。

    在上述信号中、我能够读取正确的值。

    6.下面是线圈上的输出电压。

       BOUT1:2.0V

       BOUT2:2。 0V 至3.0V

       AOUT1:0伏

       AOUT2:0V。

    如果我做错了什么、请纠正我。

    但电机仍未运行。 我想是因为线圈没有获得电压或频率信号。

    谢谢!

    Nagababu V.

        

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

    尊敬的 Mojtaba:

    很好的新酒店

    电机正在运行。 工作之后会发生一些硬件更改。

    我需要你的帮助。

    对于我的应用、电机应该在没有噪声的情况下运行、旋转缓慢、电流消耗应更小(小于1A)。

    请告诉我上一点的设置。

    谢谢!

    Nagababu。

     

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

    您好、Nagababu:

    我很高兴上面的回答对您有所帮助。

    "对于我的应用、电机应该在没有噪声的情况下运行、旋转缓慢、电流消耗应更少(小于1A)。"

    请参阅 7.3.8电流调节 和7.3.8.1内部基准电压 P28-29  .  

    请使用 链接查找数据表

    使用 TRQ_DAC 设置、对于 SPI 接口、8位 TRQ_DAC 寄存器会进一步调节满量程电流。

    IFS (A)= VREF (V) x TRQ_DAC/kV (V/A)

    使用 SPI 接口运行时、DRV8452支持内部3.3V 基准电压。 可以通过向 VREF_INT_EN 位写入1b 来启用此内部基准。 在这种情况下、VREF 引脚上的电压将被忽略、VREF 引脚可以保持开路或接地。 将按如下所示计算满量程电流和保持电流

    IFS (A)= 3.3V x TRQ_DAC/kV (V/A)

    使用 MICROSTEP_MODE 寄存器也可以降低可闻噪声。 请参阅  7.5.2.2 CTRL2 (地址= 0x05)[默认值= 06h] P 79 设置 MICROSTEP_MODE。 请参阅  7.3.4微步进分度器 微冲方法。

     

    如果您有任何问题、敬请告知。  

    此致、  

    Mojtaba。