主题中讨论的其他器件:DRV8353、 DRV8301
工具/软件:
您好:
我与 DRV8353RS 的 SPI 通信存在问题。
我没有收到驾驶员的任何回答。
您可以在此处的图片中看到请求和答案。 我希望第一个请求在第二个“假“请求之后得到答复。

我´m 感谢每一个提示。
BG、
Alex
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.
工具/软件:
您好:
我与 DRV8353RS 的 SPI 通信存在问题。
我没有收到驾驶员的任何回答。
您可以在此处的图片中看到请求和答案。 我希望第一个请求在第二个“假“请求之后得到答复。

我´m 感谢每一个提示。
BG、
Alex
附加:我喜欢读取寄存器 0x03。 绿色是 SDI、红色是 CLK、蓝色是 SDO、黄色是 SDO。
I´m 还将 RCp 系统从 speedgoat 连接到使能引脚、用于 MOSFET 的开关信号。
SPI 由 Arduino Uno 管理。 我使用了硬件 SPI 引脚和引脚 10 进行芯片选择。
以下是所使用的代码:
您好 Alex、
我已经查看了波形、您用于读取寄存器 0x03 的命令看起来是正确的。 问题必须在其他地方解决。
我想知道、器件附近是否进行了波形测量? 尖峰和噪声看起来非常高。
此外、在执行这些 SPI 命令时输入是否已切换?
您能否尝试降低波特率并看看这样是否有任何改善?
最后、我想知道、您是否可以正确执行写入命令? 您可以写入寄存器、并观察器件是否根据写入命令改变行为、以测试是否只是回读不起作用。
谢谢、
Joseph
您好、Joseph:
我试过没有成功。
我目前正在研究一个小的解决方法。 我下载了 GUI Composer 并使用 ISO-F28027F 电路板进行 SPI 通信、但开关信号将来自 speedgoat 上的 RCP 硬件。
我目前正努力使用寄存器 0x03 和 0x04。 我想更改 IDRIVE 电流值。 我可以更改 GUI 中除这些值之外的所有内容。
谢谢!
Alex
我的新问题是:
当其中一个相电流超过 0.5A 时、DRV 会锁存故障。
我已将以下电线从我的 speedgoat 目标机器连接到 EVM 板:
来自 J1:
VSENVM、Enable、GND
来自 J2:
INHA、INLA、INHB、INLB、INHC、 INLC、GND
我不知道为什么、因为使用该板应该有更大的电流。 ´s 由于接口中的一些引脚未连接、可能会导致电流为 0 μ A?
我希望有人比我更有经验。
谢谢!
Alex
您好 Joseph、很抱歉耽误了回答。
您的答案似乎是对的、但通过我的“权变措施“写入 SPI 寄存器的效果不是很好。
因此、我的优先事项仍然是让 Arduino 板的 SPI 写入工作。
一周前、我使用 DRV8301 和评估板 TI_DRV8301-HC-C2-KIT 进行了测试、结果非常好。
那么、除了与 SPI 通信相关的寄存器数量之外、是否有任何重大差异?
这是´令人沮丧,我得到了一些时间压力下,因为这个问题.
此致、
Alex
您好 Joseph、
非常感谢您对此问题的快速响应和帮助。
我的权变措施存在的问题是、我依赖于该电路板主动连接到 C2000、否则寄存器编程将丢失。 例如、使能引脚应该从我的 Speedgoat RCP 硬件而不是从 C2000 模块激活。
来自 GUI 的信号看起来有所不同、因为读取寄存器时的响应似乎出现在与请求相同的 SPI 周期中(当然,我也尝试了此操作但没有成功)、并且始终同时查询所有寄存器。
使用 DRV8301 时、对读取命令的响应始终在下一个 SPI 帧中。
明天我可以向您发送两种方法 (Arduino 和 GUI) 的示波图。
谢谢、
Alex
您好 Alex、
感谢您的解释、我了解解决问题的方法。
我认为查看示波器捕获将非常有帮助。 我们明天就可以看看。
此外、除了在同一个周期内的响应之外、Arduino 和 GUI 之间的时序是否相似? 例如、Arduino 遵循数据表中概述的保持时间要求?
由于您在使用 Arduino 时没有看到响应(我引用了此线程上发布的初始示波器捕获)、这使我认为问题可能涉及时序、因为 SDO 输出上未显示任何内容。
此外、我无法分辨、因为我看不到您的负载、但 SDO 线路上是否有上拉电阻器? 我认为这是正常运行所必需的、应该也安装在 EVM 上、或许可以解释其中的差异?
谢谢、
Joseph
您好 Alex、
我同意信号看起来足以进行响应。
您是否使用同一器件进行两次测试、或者它们是否使用两个单独的 DRV8353? 如果他们是两个不同的设备,我想知道是否 Arduino 设备损坏
您能否仔细检查电压 是否与数据表中的绝对最大值规格表保持一致? 一些信号似乎接近 5.75V 阈值、 可能会损坏这些引脚。
不过、如果您使用同一器件进行这两个测试、则可以忽略这些点。
它看起来像设置和保持时间,它也适用于 Arduino 信号。
谢谢、
Joseph
您好 Alex、
您能否提供有关系统物理设置的更多信息或图像? Arduino 提供了哪些连接、它将使用哪种类型的电路板? 您是使用 DRV 或定制电路板从 Arduino 连接到 EVM 吗? 来自 ISO-F28027F 的 MCU 是否仍然连接、可能会导致问题?
除了 SPI 之外、来自 Arduino 的所有信号都是什么? 它们的行为是否正确?
我猜这是与硬件相关的设置、因为我现在提醒大家、器件不会根据我之前要求您检查的写入命令修改其行为。
这些线路上的某处可能存在一些争用、导致一条或多条 SPI 线路被错误地下拉/失去连接到器件的电压。
由于您的波形看起来正确、因此我下次猜这可能是什么问题。 此外、软件是否有可能以某种方式将 SDO 拉低?
谢谢、
Joseph
您好、Joseph:
感谢您的支持。
我们 现在将 ISO-F28027F 板用作编程器、并构建了一个小型适配器 PCB、因此还可以使用来自 RCP 硬件的开关信号。
这是很好的工作,这对我们来说是可以的。
最后一个问题、因为我认为您对 DRV 非常了解。 我们目前只存在一些问题、我们的相电流看起来有点奇怪、我认为 DRV 会在定义的时间内停止开关。 在我´s 它是一个或自我保护功能。 我尝试了几件事、但无法改变 DRV 的行为。
这就是全部三个相位中的相电流情况。 开关不循环的时间在相位之间发生偏移。

y 轴以安培为单位显示电流、x 轴以秒为单位显示时间。
谢谢、
Alex
您好 Alex、
感谢您提供的信息。
从这些信息可以看出您遇到了 UVLO 故障、即 VM 引脚上发生欠压。 我怀疑您的 VM 振荡在 8~9V 左右、这会持续触发进入和退出所看到的 UVLO 保护。
如前所述、这不是锁存故障。 仅当存在 VM 欠压情况时、才会存在此故障。
如果您能够稳定 VM 上的电源、则可能会解决您的问题。 您能否确保 VM 具有足够的大容量电容、或者电源能够提供电机所消耗的适当电流量?
这几乎是肯定的问题。 请告诉我您的想法
谢谢、
Joseph