SPI帧格式与时序

使用NSD3608驱动半桥,需要注意SPI通信的帧格式和时序的正确性。

1、SPI帧格式

SPI 输入数据帧由 16 位组成:8 位命令(高8位)和 8 位数据(低8位)。


SDI 输入数据解释:

  • B15:固定为 0b
  • B14:W0=1b 表示读命令,W0=0b 表示写命令
  • B8 ~ B13:6 位地址位 A0 ~ A5
  • B0 ~ B7:8 位数据位

SPI 输出数据帧由全局状态指示 8 位(高8位)和寄存器 8 位数据(低8位,来自当前正在访问的寄存器的 8 位数据)组成。

SDO 输出数据解释:

  • B13:FAULT,与 GEN_STA_1(0x00) 中的 FAULT 值相同
  • B12:WARN,与 GEN_STA_1(0x00) 中的 WARN 值相同
  • B11:VDS_VGS_FLT_OR,与 GEN_STA_1(0x00) 中的 VDS_VGS_FLT_OR 值相同
  • B10:PVDD_VCP_UV_OR,与 GEN_STA_1(0x00) 中的 PVDD_VCP_UV_OR 值相同
  • B9:OV,与 GEN_STA_1(0x00) 中的 OV 值相同
  • B8:OT_WD_CSA_OR/nSPI_OK,由 GEN_STA_1(0x00) 中的 OT_WD_CSA_OR 位和 nSPI_OK 的逻辑或运算得出,nSPI_OK 为 GEN_STA_1(0x00) 中 SPI_OK 的取反值
  • B0 ~ B7:8 位数据位

2、SPI时序

NSD3608的SPI的时序如下:

需要注意以下几点:

  • 数据格式: 应该设置为 MSB first(最高有效位优先)。
  • 时钟脉冲: 需要满足脉冲数是16的倍数,并且频率不能超过10MHz(周期为100ns)。
  • 时钟极性(CPOL): SCLK应该在 nSCS(片选)边沿为低电平时开始,因此设置 CPOL = 0(空闲时低电平)。
  • 时钟相位(CPHA): 对于主设备 (MCU) 的要求是:数据在时钟的上升沿发送(shift out),在下降沿采样(captured)。因此设置为 CPHA = 1。
  • 片选信号(CS): 默认为高,拉低表示通信的开始,拉高结束该帧的传输。

因此,主设备(MCU)SDI 数据在 SCLK 上升沿发送(shift out),SDO 数据在 SCLK 下降沿采样;从设备(NSD3608)SDI 数据在 SCLK 下降沿采样,SDO 数据在 SCLK 上升沿发送。即设置为SPI的模式1,并且注意时钟频率不超过10MHz。

发送命令0x0786 ,使用逻辑分析仪器捕获的正确的时序如下:

使用MCU通信

1、 SPI专用命令

1.1 page设置命令

在对NSD3608寄存器操作时,需要先设置page,因为不同的page有相同地址的寄存器。设置page的寄存器是PAGE_CTRL,地址为0x3F,设置其中的page位映射到不同的页。

1.2 清除故障命令

SPI 清除故障命令,如果 DIAG_CLR=1b,SPI 向 GEN_CTRL1 寄存器(0x07)写入命令将清除错误位。在上电之后,需要先进行一次故障清除。

1.3 SPI锁定/清除命令

SPI 锁定/解锁寄存器命令,将命令写入 GEN_CTRL_1 寄存器(0x07)且 LOCK 位=110b,则除 GEN_CTRL_1 寄存器(0x07)和整个 PAGE_CTRL 寄存器(0x3F)中的 LOCK 位外,所有控制寄存器都不能写入,但可以读取。

将命令写入 GEN_CTRL_1 寄存器(0x07),且 LOCK 位=011b,则所有控制寄存器均可写入再次(清除故障命令也受锁定/解锁的影响)。

所以如果遇到SPI通信无效的情况,可能是SPI被锁定了。

2、 初始化流程

确保MCU的SPI接口与NSD3608连接正确,给NSD3608的PVDD、DVDD(3.3V/5V)供电,并且将nSleep引脚拉高。page默认为0号。

6ba0a69d41ed49fc02f5445c034ea70b

这里需要注意的地方是,上电清一次故障,然后配置DRVOFF。DRVOFF/nFLT 是一个多功能引脚,其功能取决于模式和设置:

正常模式下,DRVOFF_nFLT 位决定引脚的功能。当 DRVOFF_nFLT=0b 时,引脚为 DRVOFF。当 DRVOFF_nFLT=1b 时,引脚为 nFLT。

休眠模式下,DRVOFF/nFLT 引脚的功能固定为 nFLT,无论 DRVOFF_nFLT 的状态如何。

DRVOFF 功能

  • DRVOFF 引脚用于提供外部 MOSFET 的关闭信号。
  • 当 DRVOFF 引脚为高电平时,设备将直接关闭所有外部 MOSFET,不受 SPI 命令或 INz 信号的影响。
  • DRVOFF 引脚内置一个下拉电阻 RPD 和滤波时间 tDRVOFF。

nFLT 功能

  • nFLT 引脚作为一个开漏的故障中断信号,通知 MCU 设备发生故障。
  • 在没有活动时,nFLT 引脚仅会有少量漏电流;发生故障时,它会变为低电平以指示故障。

所以,如果上电之后,SPI命令无效,也可能是因为该引脚被拉高了。可以将该引脚拉低,或者像流程图的操作那样,设置该引脚为nFLT,仅作为指示作用,不影响半桥驱动。

上述流程是一个简单的配置,如果需要其他配置,请参考以下表格:

上位机

使用原厂提供的主板和GUI可以很方便地配置NSD3608。

1、连接芯片

按照以下方式连接即可,3.3V/5V提供给NSD3608的DVDD。

打开GUI软件,如果成功连接如下图所示:

2、UI界面

3、配置流程

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐