首页 串行外设接口SPI

串行外设接口SPI

举报
开通vip

串行外设接口SPI 1 串行外设接口 SPI 2 培训内容 – SPI模块  SPI协议简介  STM32F2的SPI模块GPIO占用和配置  片选信号的管理  时钟极性和相位  数据格式(F2新增对TI格式的支持)  主/从设备模式的收/发配置  不同通信模式下的操作序列和状态时序  全双工通信  单工通信  CRC特性  DMA特性  状态、错误标志以及中断管理 3 培训内容 – SPI模块  SPI协议简介  STM32F2的SPI模块GPIO占用和配置  片选信号的管理  ...

串行外设接口SPI
1 串行外设接口 SPI 2 培训 焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载 内容 – SPI模块  SPI 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 简介  STM32F2的SPI模块GPIO占用和配置  片选信号的管理  时钟极性和相位  数据格式(F2新增对TI格式的支持)  主/从设备模式的收/发配置  不同通信模式下的操作序列和状态时序  全双工通信  单工通信  CRC特性  DMA特性  状态、错误标志以及中断管理 3 培训内容 – SPI模块  SPI协议简介  STM32F2的SPI模块GPIO占用和配置  片选信号的管理  时钟极性和相位  数据格式(F2新增对TI格式的支持)  主/从设备模式的收/发配置  不同通信模式下的操作序列和状态时序  全双工通信  单工通信  CRC特性  DMA特性  状态、错误标志以及中断管理 4 SPI总线简介  SPI(Serial Peripheral Interface)由Motolora提出的一种三 线同步接口,可实现全双工通信。  数据传送以字节为单位  并采用高位在前的格式(MSB)  硬件接口  SCK:起同步作用的串行移位时钟  SDO:串行数据输出(MOSI)  SDI:串行数据输入(MISO)  CS:使能从设备的片选信号 MSB MSB LSB LSB SCK MOSI MISO CS (1) 这种情况下,双方的NSS都配置成输入 5 STM32F2的SPI模块引脚及重映射 SPI1 SCK PA.5 PB.3/JTDO MOSI PA.7/ PB.6 MISO PA.6 PB.4/NJTRST NSS PA.4 PA.15/JTDI SPI2 SCK PB.10/ PB.13/PI.1 MOSI PC.3/ PB.15/PI.3 MISO PC.2/ PB.14/PI.2 NSS PB.12/ PI.0/PB.9 SPI3 SCK PC.10 PB.3/JTDO MOSI PC.12/ PB.5 MISO PC.11 PB.4/NJTRST NSS PA.4 PA.15/JTDI SPI1和SPI3上某些引脚和JTAG 接口的功能引脚复用,发生冲突: >>把冲突的SPI引脚重映射到其 它GPIO上 >>关闭JTAG调试接口,改用 SWD在开发过程中进行调试烧写 >>调试成功后的应用,关闭JTAG /SWD接口 6 主从设备引脚GPIO配置  主从设备都软件管理片选信号时,可以方便动态 地切换主/从关系  引脚配置列表 7 从设备片选引脚的用法(软件控制)  软件片选管理  片选信号由寄存器控制,对应NSS引脚可作它用  无需配置NSS引脚的GPIO  一旦配置好寄存器,该从设备立马被有效片选  寄存器标志  SSM @ CR1=1 SSI @ CR1=0  库函数使用  SPI_InitStruct.SPI_NSS = SPI_NSS_Soft  SPI_InitStruct.SPI_Mode = SPI_Mode_Slave 从 设 备 SCK SO SI NSS 8 从设备片选引脚的用法(硬件控制)  硬件控制  片选信号由引脚外部电平控制  NSS引脚GPIO配置为浮空/下拉输入  NSS引脚可固定接到外部低电平,片选立刻生效  NSS引脚可由主设备来控制,何时片选生效取决主设备  寄存器标志  SSM @ CR1=0 SSI @ CR1无意义  库函数使用  SPI_InitStruct.SPI_NSS = SPI_NSS_Hard  SPI_InitStruct.SPI_Mode = SPI_Mode_Slave 从 设 备 SCK SO SI NSS 配置成浮空输入, 由主设备控制何时 拉低电平从 设 备 SCK SO SI NSS 配置成下拉输入, 引脚连接固定的 低电平 9 主设备片选引脚的用法(软件控制)  软件片选管理  片选信号由寄存器控制,对应NSS引脚可作它用  无需配置NSS引脚的GPIO  一旦配置好寄存器,该设备立马主有效  寄存器标志  SSM @ CR1=1 SSI @ CR1=1  MSTR @ CR1=1  库函数使用  SPI_InitStruct.SPI_NSS = SPI_NSS_Soft  SPI_InitStruct.SPI_Mode = SPI_Mode_Master  此时NSS引脚可以配置成普通GPIO去控制从设备(如 果从设备配置成硬件管理片选),那么从设备的片选信 号由主控制 主 设 备 SCK MO MI NSS 10 主设备片选引脚的用法(硬件控制.方式1)  硬件控制  片选信号由引脚外部电平控制  NSS引脚GPIO配置为浮空/上拉输入  NSS引脚固定接到外部高电平,立刻主有效  NSS引脚可由第三方来控制,何时片选生效取决第三方  寄存器标志  SSM @ CR1=0 SSI @ CR1=无意义 MSTR @ CR1=1  库函数使用  SPI_InitStruct.SPI_NSS = SPI_NSS_Hard  SPI_InitStruct.SPI_Mode = SPI_Mode_Master 主 设 备 SCK MO MI NSS VDD 配置成上拉输入, 引脚连接固定的 高电平 主 设 备 SCK MO MI NSS 配置成浮空输入 ,由第三方控制 何时拉高电平 注意:拉高之前不能置位MSTR,否则出错MODF 11 主设备片选引脚的用法(硬件控制.方式2)  硬件控制  片选该环境中所有其它配置成硬件管理片选的从设备  常用于广播应用  NSS引脚GPIO配置为推拉复用  不适用于多主环境  若已有主设备在通信, NSS不能被拉低,并将产生Hard Fault  寄存器标志  SSM @ CR1=0 SSI @ CR1=无意义 MSTR @ CR1=1  SSOE @ CR2=1  库函数使用  SPI_InitStruct.SPI_NSS = SPI_NSS_Hard  SPI_InitStruct.SPI_Mode = SPI_Mode_Master  SPI_SSOutputCmd (SPIx, ENABLE)  如上配置完成后,一旦使能SPI,NSS拉低  SPI _Cmd(SPIx, ENABLE) 12 主设备片选引脚硬件控制.方式2示意图 Slave1 SCK MISOMOSINSS Master SCKMISOMOSINSS Slave2 SCKMISOMOSINSS Slave3 SCKMISOMOSINSS 开启SS输出性能 主设备配置1: 主设备模式 片选硬件管理 NSS配置成可编程推挽输出 使能NSS输出 主设备配置2: 主设备模式 片选软件管理 NSS配置成GPIO的输出 GPIO控制输出低电平 三个从设备配置: 从设备模式 片选硬件管理 NSS配置成浮空输入 13 时钟极性和相位  四种数据采样时钟延  CPOL决定时钟空闲时的稳定电平,对主/从都有效  CPOL=0:空闲时低电平  CPOL=1:空闲时高电平  CPHA决定数据采样时刻  CPHA=0:第一个时钟延开始采样MSBit  CPHA=1:第二个时钟延开始采样MSBit  注意事项  修改CPOL/CPHA之前先要通过复位SPE来关掉SPI  主/从通信双方要配置成相同的时钟模式  SCK空闲时的电平要和CPOL的设置一致  CPOL=0:需要下拉SCK引脚  CPOL=1:需要上拉SCK引脚 14 四种时钟模式 空闲时间高电平 CPOL=1 空闲时间低电平 CPOL=0 第二个时钟延采样 CPHA=1 第一个时钟延采样 CPHA=0 空闲时间高电平 CPOL=1 空闲时间低电平 CPOL=0 15 SPI时钟波特率  主设备决定SPI时钟波特率  BR[2:0]@SPI_CR1  fPCLK /i(i=2、4、8、16、32、64、128、256)  8个分频因子  fPCLK不是CPU频率,而是外设总线频率  STM32F2的SPI最快时钟30MHz,芯片 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 时决定的  SPI1在APB2上,可获得最高设计频率,30MHz  SPI2/3在APB上,可获得的最高频率只有15MHz  最高波特率会随着扇出数的增加而相应下降,需增加外部缓冲  从设备时钟来自于主设备,但是不能超过自身所 在APB总线频率的一半(max fPCLK/2)  SPI模式下从设备,无须配置BR[2:0]  TI模式下从设备,对BR[2:0]的设置,控制trelease 不同于STM32F1 16 STM32F2的SPI支持的数据格式  LSBFIRST决定MSB还是LSB先移位出去  LSBFIRST@SPI_CR1= 1:LSB先移位出去  LSBFIRST@SPI_CR1= 0:MSB先移位出去  DFF决定数据帧是8位还是16位  DFF@SPI_CR1= 0:8位数据帧格式  DFF@SPI_CR1= 1:16位数据帧格式  STM32F2的SPI新增对TI格式的支持  寄存器标志 FRF@SPI_CR2 = 1  函数库使用 SPI_TIModeCmd (SPIx, Enable) 17 TI帧格式  TI模式特性  主/从设备的NSS引脚相互连接  主设备在时钟上升沿,驱动NSS产生一个周期的正脉冲后,数据 才开始传输  时钟上升沿驱动输出数据;下降沿锁存数据  四线全双工通信 TI模式下,无论主/从设备: >> 时钟极性/相位自动遵循TI协议要求,无需配置 >> 片选信号自动遵循TI协议,无需配置 18 培训内容 – SPI模块  SPI协议简介  STM32F2的SPI模块GPIO占用和配置  片选信号的管理  时钟极性和相位  数据格式(F2新增对TI格式的支持)  主/从设备模式的收/发配置  不同通信模式下的操作序列和状态时序  全双工通信  单工通信  CRC特性  DMA特性  状态、错误标志以及中断管理 19 主/从模式配置 从设备 时钟输入信号 主设备 时钟输出信号 BR不影响数据传输率 BR决定数据传输率 静态配置 1)设置DFF定义帧长度 2)设置CPOL&CPHA定义时钟模式 3)设置LSBFIRST定义帧格式 4)硬件片选:在通信过程中NSS引脚连到 低电平;软件片选:置位SSM并清零SSI 5)设置FRF选择Moto模式或TI模式 6)清零MSTR并置位SPE 0)设置BR来决定时钟波特率 1)设置DFF定义帧长度 2)设置CPOL&CPHA定义时钟模式 3)设置LSBFIRST定义帧格式 4)硬件片选:在通信过程中NSS引脚连 到高电平;软件片选:置位SSM和SSI 5)设置FRF选择Moto模式或TI模式 6)置位MSTR和SPE TI模式备注 1)标有下划线的步骤都不需要 2)BR不控制数据传输率,但控制MISO 引脚上数据保持时间trelease 标有下划线的步骤都不需要 备注 在使能主/从之前,就要把时钟空闲电平设置到稳定状态 20 主/从设备收/发操作 从设备 时钟输入信号 主设备 时钟输出信号 BR不影响数据传输率 BR决定数据传输率 发送 写操作时数据被并行装入Tx buffer;收到时 钟信号以及MSB的同时发送。剩余位装入 移位寄存器,TxE置位并产生中断 数据写入Tx buffer则开始发送。发送 MSB的同时其余位送到移位寄存器, TxE置位并产生中断 接收 接收完一帧,数据从移位寄存器送到Rx buffer,RxNE置位并产生中断。读操作返 回buffer中的数据,并清除RxNE 备注 为了保证发送数据流的连续:可以在TxE置位时写入下一个待发送的数据,此时上 一个数据还在移位寄存器和总线上发送。写操作之前,必须确认TxE标志置位; 参见“全双工时序和标志图”。 主设备发送时钟之前就要使能从设备并且把它待发送的数据放在数据寄存器中; 21 培训内容 – SPI模块  SPI协议简介  STM32F2的SPI模块GPIO占用和配置  片选信号的管理  时钟极性和相位  数据格式(F2新增对TI格式的支持)  主/从设备模式的收/发配置  不同通信模式下的操作序列和状态时序  全双工通信  单工通信  CRC特性  DMA特性  状态、错误标志以及中断管理 22 通信模式 全双工 两条数据线,收发同时进行 单工 一条数据线 单线&双向分时 BIDIMODE=1 原来的输出线作为唯一的数据线 >> 主设备:使用MOSI >>从设备:使用MISO 由BIDIOE控制数据方向 >> BIDIOE=1:输出 >> BIDIOE=0:输入 单线&单向 BIDIMODE=0 只发送 和全双工类似,只是接收引脚可以作GPIO 只接收 RXONLY=1 发送引脚可作它用 启动通信:配置并使能SPI(无须发送数据,时 钟信号会自动送出) * 关闭通信: >> 主设备:清零SPE >> 从设备:片选无效或SCK停止 23 “全双工”收发操作序列  主/从设备都适用:  (1) 置位SPE使能SPI  (2) 往SPI_DR写入第一个待发送数据  (3) 等待TxE置位后写入第二个带发送数据  (4) 等待RxNE置位后从SPI_DR读取第一个收到的数据  重复以上两个步骤,直到收到倒数第二个数据  (5) 等待RxNE置位,读取最后一个数据  (6) 等待TxE置位后,再等待BSY清零,再关闭SPI  以上步骤也可以用RxNE和TxE中断完成  注意主/从设备方各自BUSY标志的不同 24 “全双工”时序和标志 主设备 从设备 2 3 4 3 4 5 loop 25 “只发送”操作序列  BIDIMODE =0 RXONLY =0  主从设备都适用:  (1) 置位SPE使能SPI  (2) 往SPI_DR写入第一个待发送数据  (3) 等待TxE置位后写入第二个带发送数据  重复以上步骤,直到所有数据都写入SPI_DR  (4) 等待TxE置位后,再等待BSY清零,再关闭SPI  以上步骤也可以用TxE中断完成  该模式发送完两个数据,OVR会合理地置位 26 “只发送”时序和标志 主设备 从设备 2 3 4 3 4 4 软件等待TxE=1,再等待BSY=0,关闭SPI 27 “只接收”操作序列 主设备 从设备 初始化序 列 置位RXONLY,使能“只接收”模式 BIDIMODE =0,RXONLY =1 开始序列 置位SPE,使能SPI 一旦使能了SPI,立即产生时钟信号,以 接收数据 片选有效,并且时钟信号到来, 才开始接收数据 接收数据 等待RxNE置位,以读取数据 结束序列 SPI模式: 等到读取完倒数第二个数据,再使用软件 循环等待一个SPI时钟周期,关闭SPI; 等待最后一个RxNE置位,读取最后一个 数据,再关闭SPI时钟 任何时候都可以关闭SPI,线 上的当前传输还是能完成; 若要进一步关闭时钟或进入低 功耗模式,还要等到BSY清零 TI模式: 等到读取完倒数第二个数据;再等待一个 SPI时钟周期,在最后一个数据的最后一 位开始传输之前,关闭SPI; 等待最后一个RxNE置位,读取最后一个 数据,再关闭SPI时钟 28 “只接收”时序和标志 主设备 从设备 29 双向单线模式  双向单线之发送  和“只发送”模式类似  设置BIDIMODE =1 BIDIOE =1,再使能SPI  双向单线之接收  和“只接收”模式类似  设置BIDIMODE =1 BIDIOE =0,再使能SPI  BSY标志的异常表现 30 培训内容 – SPI模块  SPI协议简介  STM32F2的SPI模块GPIO占用和配置  片选信号的管理  时钟极性和相位  数据格式(F2新增对TI格式的支持)  主/从设备模式的收/发配置  不同通信模式下的操作序列和状态时序  全双工通信  单工通信  CRC特性  DMA特性  状态、错误标志以及中断管理 31 SPI的CRC计算单元  内嵌硬件CRC计算单元以支持可靠通信  收、发独立的CRC计算单元  根据数据帧长度,提供不同的计算公式(CRC8/16)  涉及到的寄存器  SPI_CR1:CRCEN、CRCNext  SPI_SR:CRCERR  SPI_CRCPR:供CRC计算的多项式寄存器  SPI_TXCRCR/SPI_RXCRCR  只读寄存器( BSY位置时读取的值可能有误)  包含从CRC单元使能后,所发送/接收到的所有数据的CRC值  低8位或全部16位有效,取决于数据长度  使能CRC / 发送CRC  寄存器:CRCEN@SPI_CR1 / CECNext@SPI_CR1  函数库操作:  SPI_CalculateCRC(SPIx, ENABLE)  SPI_TransmitCRC(SPIx) 32 使用CRC功能的SPI通信 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计  配置通信模式  CPOL、CPHA、LSBFirst、BR、SSM、SSI、MSTR  配置CRC多项式: SPI_CRCPR  使能CRC计算以复位CRC寄存器:CRCEN  使能SPI:SPE  开始数据通信,直到完成倒数第二个数据:  全双工或单工发送模式  最后一个数据写进SPI_DR之后,置位CRCNEXT  最后一个数据发送完成后,就发送CRC  单工接收模式  收到倒数第二个数据之后,置位CRCNEXT  CRC发送完成后CRCNext复位  CRC检验  全双工和单工只收模式:  收到的CRC数值和SPI_RXCRCR比较  不一致则报错:CRCERR@SPI_SR 33 培训内容 – SPI模块  SPI协议简介  STM32F2的SPI模块GPIO占用和配置  片选信号的管理  时钟极性和相位  数据格式(F2新增对TI格式的支持)  主/从设备模式的收/发配置  不同通信模式下的操作序列和状态时序  全双工通信  单工通信  CRC特性  DMA特性  状态、错误标志以及中断管理 34 SPI的DMA功能  每个SPI模块有两个DMA请求  发送请求、接收请求  可以同时或分别打开  使能CRC和DMA模式后,会在数据发送完成后自 动发送CRC值  无须CPU在特定时间置位CRCNext  DMA发送完成后的标志检查,确保通信完成  等到TCIF=1 再等TXE=1 再等BSY=0 使能控制 触发信号 DMA通道 SPI发送请求 TXDMAEN TXE置位 参见《参考手册》 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 22&23 SPI接收请求 EXDMAEN RXNE置位 35 DMA发送示例图 DMA模式发送:关闭SPI之前要等待这些标志 36 DMA接收示例图 DMA模式接收: 关闭SPI之前只要等待这个标志 37 培训内容 – SPI模块  SPI协议简介  STM32F2的SPI模块GPIO占用和配置  片选信号的管理  时钟极性和相位  数据格式(F2新增对TI格式的支持)  主/从设备模式的收/发配置  不同通信模式下的操作序列和状态时序  全双工通信  单工通信  CRC特性  DMA特性  状态、错误标志以及中断管理 38 状态标志  发送缓冲空 TxE  发送缓冲的数据已经移到移位寄存器了  CPU/DMA可以往发送缓冲写数据了(写SPI_DR)  接收缓冲空 RxNE  移位寄存器收到的数据以及移到接收缓冲了  CPU/DMA可以从接收缓冲读数据了(读SPI_DR)  总线忙 Busy  常用于应用要关掉SPI并进入低功耗模式前检测通信是否结束  在多主通信环境中可用于避免写冲突  发生主模式错误(MODF),硬件清除该标志 Busy位 连续通信 间隔通信 备注 主设备 通信期间一直保持置位 间隔期间被拉低 例外:主模式(MSTR=1)的 单线双向(BIDIMODE=1)之 接收(BDOE=0)时,BSY保 持低电平 从设备 每字节/半字之间,BSY被拉低 一个SPI的时钟周期 39 错误标志 错误类别 何时发生 影响 如何清除 主模式错误 MODF 主设备:硬件管理片选时 NSS引脚被拉低;软件管理 片选时SSI位清零 多主环境下的从设备:发生 多主冲突 置位MODF并产生中断; 硬件清除SPE和MSTR 在MODF置位时对 SPI_SR执行读或写 操作;写SPI_CR1 溢出错误 OVR 从设备还未清除RxNE(上一 个数据还未读取),主设备 又发送了新数据 置位OVR并产生中断;接 收缓冲中仍是上一个数据, 随后的数据都丢失 读取SPI_DR,再 读取SPI_SR 校验错误 CRCERR 移位寄存器中收到的校验数 据和 RXCRCR中计算出来 的数值不一致 软件写0清零 帧格式错误 TIFRFE 配置成TI模式的从设备:在 通信过程中出现NSS引脚上 的脉冲(参见图258) 置位TIFRFE并产生中断。 SPI不会被关掉,而是忽 略掉该脉冲,继续等待下 一个NSS脉冲,再发起下 一次传输。数据会丢失 读取SPI_SR 40 中断管理 状态和错误标志 中断事件 中断使能控制 TxE 发送缓冲空 TxEIE RxNE 接收缓冲满 RxNEIE BUSY MODF 主模式错误 ERRIE OVR 溢出错误 CRCERR CRC校验错误 TIFRFE TI帧格式错误 41 注意要点杂项  数据帧格式  只支持8位或16位长度  非常规帧长度的处理  GPIO模拟  拼接发送数据,剩余位用GPIO模拟  必须在主/从设备使能之前,根据时钟极性把SCK设置到相 应水平  设置时钟空闲高(低)电平,则SCK最好上(下)拉  作为从设备,必须在主设备的时钟来临之前使能好SPI, 并且把数据放进数据寄存器  波特率较高时建议使用DMA  减少字节/字之间的空闲时间,从而提高带宽
本文档为【串行外设接口SPI】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_614557
暂无简介~
格式:pdf
大小:1MB
软件:PDF阅读器
页数:41
分类:互联网
上传时间:2014-03-20
浏览量:44