Other Parts Discussed in Thread: MSPM0G3519, SYSCONFIG
器件型号: DRV8263S-Q1EVM
主题中讨论的其他器件: MSPM0G3519、 SysConfig
您好、
您好、Joshua、
我将 GUI 替换为 MSPM0G3519 SPI 主器件。 如上所建议、从 SPI 主器件生成 CLR Fault 命令(不连接 DRV8263S)。 总时钟计数为 16 个周期。

//引脚映射
SPI 主器件 SPI 从器件
SCS -------------------- > SCS
CLK ------------------------ > CLK
皮克------ > SDI
POCI -------- >SDO
验证 SDI 帧后、我已从 J4 断开跳线电容器。

在初始阶段、我仅验证 SPI 通信、因此将 IN1 和 IN2 接地。 nSLEEP 和 DRVOFF 由主器件控制(两者均为高电平)。
//SPI Master
#include <ti/driverlib/m0p/dl_interrupt.h>
#include "ti_msp_dl_config.h"
/*Macros */
#define DRV8263S_FRAME_STANDARD (0U << 15)
#define DRV8263S_READ (1U << 14)
#define DRV8263S_WRITE (0U << 14)
#define DRV8263S_WAKEUP() DL_GPIO_setPins(DRV8263_GPIO_GRP_nSLEEP_PB12_PORT, DRV8263_GPIO_GRP_nSLEEP_PB12_PIN)
#define DRV8263S_DRVON() DL_GPIO_setPins(DRV8263_GPIO_GRP_DRVOFF_PB15_PORT, DRV8263_GPIO_GRP_DRVOFF_PB15_PIN)
//DRV8263 SPI Register ADDRESS
#define SPI_REG_DEVICE_ID (uint8_t)(0x00) // Device ID Register
#define SPI_REG_FAULT_SUMMARY (uint8_t)(0x01) // Fault Summary Register
#define SPI_REG_STATUS1 (uint8_t)(0x02) // STATUS1 Register
#define SPI_REG_STATUS2 (uint8_t)(0x03) // STATUS2 Register
#define SPI_REG_COMMAND (uint8_t)(0x08) // COMMAND Register
#define SPI_REG_SPI_IN (uint8_t)(0x09) // SPI Input control Register
#define SPI_REG_CONFIG1 (uint8_t)(0x0A) // CONFIG1 Register
#define SPI_REG_CONFIG2 (uint8_t)(0x0B) // CONFIG2 Register
#define SPI_REG_CONFIG3 (uint8_t)(0x0C) // CONFIG3 Register
#define SPI_REG_CONFIG4 (uint8_t)(0x0D) // CONFIG4 Register
#define CLR_FLT_MASK (0x80)
uint16_t rawTxframe=0;
uint8_t txFrame[2];
uint8_t rxFrame[2];
uint8_t deviceId;
uint8_t SPI_Transfer16(uint8_t *txBuf, uint8_t *rxBuf, uint8_t len)
{
int i=0;
uint16_t rxWord=0;
uint8_t regData=0;
while (DL_SPI_isBusy(SPI_0_INST));
/* Assert CS */
// DRV8263S_CS_LOW();
for (i = 0; i < len; i++) {
DL_SPI_transmitDataBlocking8(SPI_0_INST, txBuf[i]);
rxBuf[i] = DL_SPI_receiveDataBlocking8(SPI_0_INST);
}
while (DL_SPI_isBusy(SPI_0_INST));
/* Deassert CS */
// DRV8263S_CS_HIGH(); // CS HIGH
rxWord= ((uint16_t)rxBuf[0] << 8) | rxBuf[1];
regData = (uint8_t)(rxWord & 0xFF);
return regData;
}
int main(void)
{
SYSCFG_DL_init();
// DRV8263S_CS_HIGH();
DRV8263S_DRVON();
DRV8263S_WAKEUP();
//drvReset
rawTxframe=((SPI_REG_COMMAND<<8)|CLR_FLT_MASK); /* | R/W | A5 A4 A3 A2 A1 A0 | D7 D6 D5 D4 D3 D2 D1 D0 |
B14 B13–B8 B7–B0*/
txFrame[0]=((rawTxframe>>8)&0xFF);
txFrame[1]=((rawTxframe)&0xFF);
deviceId=SPI_Transfer16(txFrame,rxFrame,2); //2 Bytes
while (1) {
}
}
MSPM0G3519 - SysConfig

没有发生初始握手的 DRV8263、
此致、
SaKhan