你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

SPI 自举程序中使用的 I2C 协议

[复制链接]
STMCU小助手 发布时间:2022-7-25 17:28
前言) }+ K% ]# J+ ~- w; X  x; k$ k
本应用笔记说明了 STM32 微控制器自举程序中使用的 SPI 协议。它详细说明了每个支持的指令。% J9 C! {) G6 ?& A$ h8 z! D2 P8 K
若需器件自举程序 SPI 硬件资源和要求的更多信息,请参考应用笔记 “STM32 微控制器系统存储器自举模式 ” (AN2606)。
9 x7 S- ^1 H  c9 j" @  O本文档适用于表 1 中所列产品。. w7 P6 \" x* `3 t! j
OI_{2P~@}W1ZOK91SAAMS_5.png
/ n( w. N8 H( B/ R, k4 T: J. f, w& R7 B
1 SPI 自举程序代码序列3 s) B6 ], Y: }* \
STM32 自举程序为 SPI 从机。
6 H/ S2 E; a  \! x' X对于所有 SPI 自举程序操作, NSS 引脚 (片选)必须连至低电平。若 NSS 引脚连至高电平,则 STM32 从机将忽略 SPI 总线上的通信。

$ Z6 e8 \* Z' M" \: t+ A& q
, a6 s% c* u" l  o4 t
B8F)L2_NL11N670C$$H}QHK.png ! d9 C; u! h' P5 o/ d+ N. x
, W- B$ d. \9 s  K3 _
进入系统存储器自举模式后,若 STM32 微控制器已配置好 (若需更详细信息,请参考您的STM32 系统存储器自举模式应用笔记),自举程序代码开始扫描 SPI_MOSI 线引脚,等待检测总线上的同步字节 (0x5A)。当检测到时, SPI 自举程序固件会等待接收应答过程 (请参考图 2),然后开始接收主机指令。

8 v) h6 i8 W/ \7 D6 s! W% V. m- M1 R3 Z' H5 o

- L: v* i4 t; t! Z% O (_I7CR~4[RJWA)MUC@K7H.png
( f8 ^6 E5 V0 u  ^1 B. h
! D7 C, g1 s) N' h: M, q% ~

. E9 G9 L! `/ S0 m; j3 y) S7 X 4}R~3KGR~PZUH$VRDP)Q}TO.png
" P  s$ A: o! o3 G- P7 P# d4 O/ `- c& }3 ^6 ~. G$ {
2自举程序指令集
0 u; d$ `  y0 [$ a表 2 列出了所支持的指令。每个指令都将在本章进一步讲述。
3 `/ R0 k& w% y! ^0 j# ?. {
8 a+ y2 ^$ P/ {1 r

3 Z  t$ E, H' p1 j; c; |9 F, D3 v ~GJ~WU$)N(OEX16T7}50{Y9.png $ _3 Z+ |! d( n6 Z) \+ X( _$ H

8 k( _) i: J; ?; R3 D9 y

& ?# c/ r5 t. U% C- N
2 h8 ]( m3 u) [5 q因为 SPI 配置为全双工,所以每次主机在 MOSI 线上发送数据时,它都会同时从 MISO 线上接收数据。因为从机的应答不是立即的,所以当主机发送时,它接收的数据将被忽略 (空)(此数据不被主机使用)。' I6 h9 d5 b8 k  s& u" S% Z! M& H
当从机需要发送数据时,主机会发送它的时钟,因此它必须在 MOSI 线上发送数据,才能从MISO 线上接收从机数据。在此情况下,主机应一直发送 0x00 (从机不使用此数据)。- \  @/ \- J+ f/ L0 }% ]* |7 B) Q# ~

  J7 P4 A/ I9 i- X! |2.1通信安全/ W+ o1 a, L  Z' B0 T
从编程主机到从机的所有通信都经过以下方式验证。
' ^, S; s& O( ]6 ~•校验和:接收的数据字节块都经过异或计算。所有字节异或计算后算出一个字节,加到每次通信的末尾 (校验和字节)。对所有收到的字节 —— 数据 + 校验和 —— 做异或计算,最后结果必须为 0x00。" w% w  Q1 V5 `( m
•若接收的数据为一个字节,则它的校验和为该值的按位取反 (0x02 的校验和为0xFD)。
1 o& p1 v! S5 X  X•对于每个指令,主机都发送三个字节:一个帧开始 (SOF = 0x5A)字节、一个表示指令值的字节及其补码 (指令与其补码的异或 = 0x00)。
% l8 L6 U  r* H4 N" M•每个包都被接受 (ACK 应答)或丢弃 (NACK 应答)。
2 E8 p$ b2 s" h- Z8 u. }– ACK = 0x79
6 \7 O1 e$ J( B7 X2 k0 n– NACK = 0x1F
. ^! I/ p) ]4 k3 H* j- C) v- {) }! {注: 主机的帧可为下列之一:" V- I5 N, t  M# e' k
发送指令帧:主机作为主发送端发起通信,向从机发送两字节:命令代码 + Xor。等待 ACK/NACK 帧:主机作为主接收端发起 SPI 通信,从从机接收一个字节:ACK 或NACK。
  }+ s! B5 l. R- t: _3 c. |接收数据帧:主机作为主接收端发起 SPI 通信,从从机收到响应。收到的字节数取决于指令。. I* w; E( j0 V+ z- L/ D5 |$ h
发送数据帧:主机作为主发送端发起 SPI 通信,向从机发送需要的字节。发送的字节数取决于指令。
6 h) B, ?% U$ E" u. Q2 N% g+ H6 ]/ z: o3 U+ i8 h- @

- Q* a6 e# c2 E
" m& T: E/ G7 I) ^, v  g9 l; D$ A! q完整版请查看:附件
1 U/ c. n3 h% X4 Y# d) Y
2 b. n/ \3 @& b1 U

- v3 m! f5 J2 g! ~5 _6 W* E) t1 j+ n+ E

DM00081379_ZHV2.pdf

下载

569.77 KB, 下载次数: 1

赞 收藏 评论0 发布时间:2022-7-25 17:28

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版