工具与软件:
团队成员、您好!
我们将 DRV8711步进电机驱动器与 STM32F429IGT6控制器一起用于我们的应用。 当我们使用驱动程序时、它会 在运行几分钟后自动停止。 我们已根据驱动器的数据表配置了所有寄存器。 电机未运行时、驱动器中没有故障指示。 我们将使用示波器来查看驱动程序 SDATI 和 SCLK 线路中的数据。 我们可以看到所发送的数据。 然后、我们发送寄存器地址以读取已配置的数据、但 在 SDATO 行中、波形中无可用数据。 这里、我们添加了驱动器和波形的配置寄存器供您参考。
我们具有驱动器的 PCB 设计供您参考。
DRV8711寄存器中的配置、
// CTRL 寄存器(地址= 0x00)
CtrlN.DTIME = 0x11;//死区时间850ns
CtrlN.ISGAIN = 0x01;// GAIN 10
CtrlN.EXSTALL = 0x00;//内部失速检测
CtrlN.MODE = 0x0100;// 16步进
CtrlN.RSTEP = 0x00;//无操作
CtrlN.RDIR = 0x00;//方向由 DIR 引脚设置
CtrlN.ENBL = 0x01;//启用电机
//扭矩寄存器(地址= 0x01)
TORQUEn.扭 矩= 0xFF;//设置两个 H 桥的满量程输出电流
TORQUEn.SMPLTH = 0x001;//反电动势采样阈值100 µs
// off 寄存器(地址= 0x02)
offn.toff = 0x30;//根据数据表默认值
OFFN.PWMMODE = 0x00;//使用内部分度器
//空白寄存器(地址= 0x03)
BLANKn.TBLANK = 0x80;//根据数据表默认值
BLANKn.ABT = 0x00;//禁用自适应消隐时间
// DECAY 寄存器(地址= 0x04)
DECAYn.TDECAY = 0x10;//根据数据表默认值
DECAYn.DECMOD = 0x101;//始终使用自动混合衰减
// STALL 寄存器(地址= 0x05)
STALLn.SDTHR = 0x40;//根据数据表"默认值"
STALLn.SDCNT = 0x00;//默认值 STALLn 在第一步中被置为有效、反电动势低于 SDTHR
STALLn.VDIV = 0x00;//反电动势低于 SDTHR 时、默认 STALLn 在第一步中置为有效
// DRIVE 寄存器(地址= 0x06)
drived.OCPTH = 0x01;// OCP 阈值500mV
drived.OCPDEG = 0x11;// 8 - us
DRIVER.TDRIVEN = 0x01;//低侧栅极驱动时间为500ns
DRIVER.TDRIVEP = 0x01;//高侧栅极驱动时间为500ns
drived.IDRIVEN = 0x10;// 300 mA
drived.IDRIVEP = 0x10;// 150 mA
// STATUS 寄存器(地址= 0x07)
//全部都是正常操作
STATUSn.OTS = 0x00;
STATUSn.AOCP = 0x00;
STATUSn.BOCP = 0x00;
STATUSn.APDF = 0x00;
STATUSn.bpdf = 0x00;
STATUSn.UVLO = 0x01;
STATUSn.STD = 0x00;
STATUSn.STDLAT = 0x00;
我们发送命令0x8000来读取配置的寄存器值。 下面的波形是 SDATI 和 SCLK 线。 我们将 SPI 模式配置为 CPHA=0 & CPOL=0。 在传输一个字节后、我们接收到一个位为高电平。 此波形是否正确、请检查。
我们发送命令0x8000来读取配置的寄存器值。 下面的波形是 SDATI 和 SCLK 线。 我们将 SPI 模式配置为 CPHA=1和 CPOL=1。 传输一个字节后 、不存在高电平。 请检查。
在这里、该波形是我们在读取寄存器0x8000时收到的波形。 始终在 SDATO 线路中接收相同的波形。 我们将 SPI 模式配置为 CPHA=1和 CPOL=1。
请查看我们附加的波形以及我们的错误、并帮助我解决问题。 在主器件配置中设置 SPI 模式所需的器件类型。 您能给我一个指导来解决这些问题吗? 我们的 SCLK、SDATI 和 SDATO 线处于下拉状态。