Other Parts Discussed in Thread: DRV8320, INA240
主题中讨论的其他器件: INA240
大家好、
这是对我之前遇到的问题的后续行动、该问题有点类似- 但 e2e.ti.com/.../2433911并没有真正解决
我的问题是、我无法使我的有传感器无刷直流电机与 DRV8320S 芯片一起旋转。
我遵循了建议的启动过程。
PWM = 0;
mBrake = 0;//制动器
MDIR = 0;//电机方向
ENABLEHALL = 0;//所有霍尔传感器的电压为0v
ENABLE = 0;//芯片关闭
waitms(1);
waitms (255);//等待时间
ENABLE = 1;//开启 DRV8320s
waitms (10);//等待事物稳定
DRV2_WRITE ();//将设置写在下面
waitms (100);//等待
ENABLEHALL = 1;//启用霍尔传感器
mBrake = 1;//启用制动
MDIR = 1;//设置电机方向
然后、我以10kHz 的频率打开 PWM
让我以一种形式再次向你说明我所做的工作以及我的结果是什么。
整个测试都是在试验电路板上进行的。 在跳至结论之前、有一次我让我的电机在这个试验电路板上旋转。 唯一的区别是它由 DRV8320H 芯片供电、而不是由 SPI (S)版本供电。 在该配置停止工作的某个时间点(在我转换到 SPI 芯片版本时)。
那么、我们在这里。 我使用35V 拉电流5a 电源为所有设备供电。 接地和 VM 线路之间的大容量电容超过1000uF。 我使用电路所需的陶瓷电容器、如 DRV8320 数据表第22页的图11所示。 我的电机按应有的方式连接到 SHA、SHB 和 SHC 线路。
DRV8320S 与 SPI 完美配合、包括设置寄存器和读取寄存器。 在我的代码中、我对所有寄存器进行两次写入、以确保第二次写入时的 SDO 与 SDI 相同(当写入新数据时、当前寄存器中的数据会移出)。 情况就是这样。
以下是我的芯片设置:
//寄存器3
SPI0DAT = 0b0_0011_011;//前8位
SPI0DAT = 0b0010_0010;//接下来的8位
waitms(1);
//寄存器2
SPI0DAT = 0b0_0010_000;
SPI0DAT = 0b0100_0000;
//寄存器4
SPI0DAT = 0b0_0100_101;
SPI0DAT = 0b0010_0010;
//寄存器5
SPI0DAT = 0b0_0101_0111;
SPI0DAT = 0b0110_1001;
基本上、由于我的 N-FET 具有非常低的 RDS (0.018欧姆)、因此我可以使用非常低的驱动电流。 我使用1x PWM 模式、因为我有来自电机霍尔传感器的反馈(输出正确)。
芯片在我打开 PWM 前不会读取错误(在来自3.3V 引脚的10kHz 频率下、信号为40%占空比)。 电机在时间(1/4秒)内产生短暂的小噪声、然后停止产生噪声和芯片故障。 此时、我在寄存器0和1上得到一个错误。 寄存器0读取0b0000010110000000 (FAULT、GDF、UVLO)、寄存器1读取0b000000000010100 (VGS_LB 和 VGS_LA)。
当我示波 MOSFET 的引脚时(在产生噪声的情况下为1/4秒)、我得到以下结果: GHA = 35V GSA = 35V,GLA = 0v 然后经过一段时间 ,之后 GHA = 0v GSA = 0v,GLA = 12v,然后返回 GHA = 35V GSA = 35V,GLA = 0v。
我不知道我的问题是什么。 请帮助。