4. SPI功能描述
4.1 SPI通信
该SPI
通信基于“ST-SPI规范”,其实和常见的SPI
并没有太大的区别。
也是通过4根信号线,每帧传输32位(4字节)数据。
SPI主机必须配置为以下模式:
CPOL
= 0, CPHA
= 0
具体的接线方法和通信时序如下图所示:
在一主多从模式下的接线如下所示:
4.2 信号描述
SPI通信的四根线基本都是一样的,仅仅是名称上的区别:
此芯片中:
SCK
:时钟线
SDI
:主机输入,从机输出
SDO
:主机输出,从机输入
CSN
:片选信号线
4.3 SPI接口
SDI格式在每个通信帧中以一个命令字节开始。它以两位操作代码(OC1, OC0)开始,指定操作类型(读,写,读和清除状态,读设备信息),然后是一个6位地址(A5: A0)。命令字节后面跟着三个输入数据字节:(D23:D16), (D15: D8)和(D7: D0)。
SDO格式在每个通信帧中以一个具体的字节(称之为全局状态字节)开始。后面跟着三个输出数据字节:(D23:D16), (D15: D8)和(D7: D0)。
4.4 操作码定义
SPI接口具有四种不同的寻址模式,如下表所示:
OC1 | OC0 | 含义 |
0 | 0 | 写操作 |
0 | 1 | 读操作 |
1 | 0 | 读、并且清除状态操作 |
1 | 1 | 读设备信息 |
4.5 写模式
设备的写入模式允许将输入数据字节的内容写入地址寄存器。输入数据在串行时钟(SCK
)的上升沿上采样,首先是MSB
。
在同一序列期间,传出数据首先在CSN
引脚的下降沿上移出MSB
,随后在串行时钟(SCK
)的下降沿上移出位。第一个字节对应于全局状态字节,第二个、第三个和第四个字节对应于寻址寄存器的前一个内容。未使用的位总是被读为0
。
4.6 读模式
在读模式下,设备允许读和检查任何寄存器的状态。
在每个SCK的上升沿收到数据,MSB
在前。
传出数据首先在CSN引脚的下降沿上移出MSB
,其他数据在串行时钟的下降沿上移出。第一个字节对应于全局状态字节,第二个、第三个和第四个字节对应于寻址寄存器的内容。未使用的位将始终被读为0
。
为了避免全局状态字节和状态寄存器之间的不一致,状态寄存器的内容在SPI通信期间被冻结。
4.7 读取和清除状态命令
读取和清除状态操作用于清除地址状态寄存器的内容,地址为0x3Fh
的读取和清除状态操作同时清除所有状态寄存器。
输入数据在串行时钟(SCK)的上升沿上采样,首先是MSB
。命令字节允许决定读取哪个寄存器内容,数据字节中设置为1的有效负载位决定寄存器中必须清除的位。
传出数据首先在CSN引脚的下降沿上移出MSB,其他数据在串行时钟(SCK)的下降沿上移出。第一个字节对应于全局状态字节,第二个、第三个和第四个字节对应于寻址寄存器的内容。未使用的位将始终被读为0
。
为了避免全局状态字节和状态寄存器之间的不一致,状态寄存器的内容在SPI通信期间被冻结。
4.8 SPI设备信息
在此期间,设备的具体信息可以读到,但是不能修改。
输入数据在串行时钟(SCK)的上升沿上采样,首先是MSB
。命令字节允许决定读取哪个寄存器内容,其他的三个字节并不关系。
传出数据首先在CSN引脚的下降沿上移出MSB,其他数据在串行时钟(SCK)的下降沿上移出。第一个字节对应于全局状态字节,第二个字节对应于地址寄存器的内容、第三个和第四个字节读到的是0
。
4.9 专用命令
0xFF——SWReset:设定所有控制寄存器为默认值并且清除所有的状态寄存器
也就是在地址111111(二进制)执行操作码11(二进制)。
但是二三四字节中至少要有一个位为0。
具体的发送序列如下:
字节一:0xFF
字节二:随意
字节三:随意
字节四:随意
0xBF——清除所有的状态寄存器
也就是在地址111111(二进制)执行操作码10(二进制)。
具体的发送序列如下:
字节一:0xBF
字节二:随意
字节三:随意
字节四:随意
4.10 全局状态字节
全局状态字节,很显然就是体现整个芯片运行状态的字节,该字节可以通过SPI进行读取,构成如下:
各个位的具体含义如下:
4.11 地址映射
4.12 ROM内存映射
4.13 控制寄存器
配置各种参数,比方说各种动作阈值等。
4.14 状态寄存器
保存当前设备的各种状态,以及专用ADC转换的结果等。
4.15 超时看门狗
为了服务超时看门狗,相关的WD_TRIG位(看门狗触发位,控制寄存器1
的第1
位)必须在给定的超时窗口内被切换。这种看门狗与传统的单片机看门狗很类似。
具体的时间可以通过SPI配置控制寄存器3
的相关位来实现,控制寄存器3的各个位定义如下:
从上图可以看出,总共可以有4种时间可供选择。 只需进行相应配置即可。
5. 操作模式
该芯片总共有6种操作模式(工作模式),具体可参考下图:
5.1 上电模式
相当于设备的复位状态,可由设备的开机或者电源开启复位状态触发。在该模式下,寄存器处于默认值,RSTB
被设置为1
。外部FET,旁路开关和电源泵处于关闭状态。
5.2 待机模式
在休眠模式下,设备进入低功耗模式并且在以下条件下运行:
- 大电流通路经过外部FETs进行关断
- 外部的FETs保护不使能
- 所有的诊断不使能,但是旁路开关处于监视状态,如果在待机模式下打开旁路开关,主要是为了检测潜在的去饱和
- 低电流旁路可以根据BYPASSCTL位进行开关
- 设备处于自我保护状态
- 电源泵关闭
休眠模式具有这样的特性:
- VSPI和VS低功耗
- SPI没有激活
- 寄存器被冻结(供电存在但是时钟停止)允许保持之前的配置,以防从未锁定状态进行转换,或者模式的复位配置,乙方从开机状态进行转换。
5.3 唤醒模式
当VS – VOUT
> VDS_BYPASS_SAT
时,设备从休眠模式进入唤醒模式。
在唤醒模式下,设备保险丝功能已启动,设备在以下条件下运行:
- 大电流通路通过外部FETs处于开启状态
- 外部FETs保护被使能
- 小电流旁路关闭
- 所有诊断被使能
- 控制寄存器被锁定在写模式
- 设备在自我保护状态
- SPI处于激活状态
- 电源泵打开
5.4 解锁模式
在解锁模式下,设备保险丝功能已启动,并且允许SPI
通信,设备在以下条件下运行:
- 大电流通路通过外部FETs处于开启或关闭状态,该状态通过SPI进行设定
- 外部FETs保护被使能
- 所有诊断被使能
- 小电流旁路处于开启或关闭状态,该状态通过SPI进行设定
- 设备在自我保护状态
- SPI处于激活状态
- 电源泵打开
5.5 锁定模式
在锁定模式下,设备保险丝功能已启动,设备在以下条件下运行:
- 外部FETs的状态通过’OUTCTL’ 和IS_OUT_MODE’ 控制位进行定义
- 外部FETs保护被使能
- 所有诊断被使能
- 小电流旁路处于开启或关闭状态,该状态通过’BYPASSCTL’ 和’DIS_OUT_MODE’控制位进行定义
- 设备在自我保护状态
- SPI处于激活状态,所有寄存器可读,控制寄存器是锁定的写操作
- 电源泵打开
5.6 自测模式
说来话长,详见第二章。
6. 应用举例
下面是实际应用中的一个实际的电路图。仅供参考。