13年电子设计大赛培训cortex-m016.串行外设接口_第1页
13年电子设计大赛培训cortex-m016.串行外设接口_第2页
13年电子设计大赛培训cortex-m016.串行外设接口_第3页
13年电子设计大赛培训cortex-m016.串行外设接口_第4页
13年电子设计大赛培训cortex-m016.串行外设接口_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SPI特性(1)3线全双工同步传输2线半双工/单工同步传输时钟极性、相位以及数据位序(MSB或LSB)可设置支持主设备、从设备,以及多主模式片选信号的软、硬件管理硬件CRC(用于8位或16位长度的帧)能触发中断的标志(TxE、RxNE、MODF、OVR、CRCERR、FRE)可配置的时钟速度fPCLK/2,高达18MHzBSY标志用于检查当前总线上是否有数据在传输自动发送CRC的DMA传输(独立的发送、接收请求)1SPI特性(2)新增以下特性更加灵活的片选信号NSS控制NSS脉冲模式TI模式数据帧长度可配置:4位16位能分别触发DMA请求,各占4字节的发送FIFO和接收FIFO数据pack:如

2、果数据帧长度短于一个字节,可以通过单次读写操作来对FIFO中的2个数据帧进行2SPI功能框图(SD)(MCLK)(CK)(WS)3Motorola模式下的数据帧格式数据帧长度可设置:4位16位无论帧长度如何,对FIFO的读FRXTH的设置一致(8位或16位)宽度必须和接收FIFO门限数据帧总是以右对齐方式存放在SPI_DR15:0时钟极性、相位可配置SCK必须通过上拉或下拉电阻来使得空闲时电平和CPOL设置的一样数据位序可设置:MSB或LSB数据开始出现4片选信号NSS管理(1)从设备由MSTRCR1=0决定从设备的是否被选中来和主设备通信,由输入的片选电平决定硬件管理:由NSS引脚电平决定,

3、低电平表示被选中管理:由SSI位决定,0表示被选中;NSS引脚可做它用5片选信号NSS管理(2)主设备由MSTR=1决定主设备的NSS做输入无论还是硬件管理,信号都要为;否则产生模式错误,置位MODF标志NSS做输出:SSOE=1只能是硬件管理一旦主SPI使能,NSS信号就被拉低,直到SPI被如果使能了NSS脉冲模式,连续通信的每帧之间会有个脉冲6新增的片选脉冲模式脉冲模式使能:NSSP=1只能用于标准SPI且第一时钟沿采样的主设备片选信号的输出由硬件管理连续通信时,每个数据帧之间NSS拉高一个时钟周期单数据帧通信时,数据传输完成后NSS被拉到该片选信号输出常用于从设备的锁存数据tSCK7新增

4、的TI片选模式TI模式使能:FRF=1片选信号在最后一个数据位时拉高片选和时钟信号都由硬件管理,CPHA和CPOL无效该模式下SSM、SSI、SSOE、NSSP都无效主、从设备都可以使用该模式主设备的BR决定总线波特率从设备的BR决定SO输出的保持时间8通信模式:全双工同时发送和接收数据至少需要3条线:MISO、MOSI和SCK(NSS可选)MISOMISOUp to 16-bit shift registerUp to 16-bit shift registerMOSIMOSISCKSCKClock generatorNSSMasterSlave片选信号配置为输入&硬件管理SSN片选信号管理

5、9通信模式:单工只发送或只接收至少需要2根线(时钟线SCK + 数据线),NSS可选主发送/从接收:MOSI,MISO可做GPIO或其他用途主接收/从发送:MISO,MOSI可做GPIO或其他用途只发送,OVF置位无需理会只接收,设置RXONLY=1主设备只接收:一旦使能SPI,时钟就发送出去,直到RXONLY或SPE被复位!MISOMISOUp to 16-bit shift registerUp to 16-bit shift registerMOSIMOSISCKSCKClock generatorNSSMasterSlave10通信模式:半双工发送和接收通过一个双向数据线分时进行至少2

6、个线,NSS可选时钟线:SCK数据线:主设备的MOSI接从设备的MISO半双工的使能:BIDIMODE=1当前的通信方向由BIDIOE决定方向的改变,需要关闭SPI后再重新配置MISOMISOUp to 16-bit shift registerUp to 16-bit shift registerMOSIMOSISCKSCKClock generatorNSSMasterSlave11通信模式小结12全双工两条数据线,收发同时进行单工一条数据线单线&双向分时BIDIMODE=1原来的输出线作为唯一的数据线 主设备:使用MOSI从设备:使用MISO由BIDIOE控制数据方向 BIDIOE=1:

7、输出 BIDIOE=0:输入单线&单向BIDIMODE=0只发送和全双工类似,只是接收引脚可以作GPIO只接收RXONLY=1发送引脚可作它用启动通信:配置并使能SPI(对于主设备无须发 送数据,时钟信号会自动送出) *关闭通信: 主设备:清零SPE 从设备:片选无效或SCK停止标准的多个从设备通信从设备各自有独立的片选任何时刻只有被NSS选中的从设备可以和主设备做全双工通信从设备共享同一片选单工只接收的从设备们可同时收到来设备的数据;其MISO引脚不能参与通信由于从设备的MISO都连在一起,因此要配置成AF-OD以保护13多个从设备组成菊花链数据线连成一个闭合的回路主设备提供时钟把数据在各个

8、从设备之间移动每组时钟脉冲之间主设备要留给从设备足够的时间来把收到的数据拷贝到发送寄存器中只需要一个共用的片选信号;时钟信号和片选信号都连在一起14各占4字节的发送和接收FIFO接收FIFO门限值设置FRXTH:达到8位或16位就触发RxNERxNE事件 对SPI_DRSPI_DR的宽度要和FRXTH一致RxNE标志复位,表明接收FIFO为空了FIFO当前的水平可通过FRLVL1:0查看最多可发送FIFO4字节收到的数据门限值固定:包含的数据2个字节就触发TxETxE事件 写SPI_DRTxE标志复位,表示发送FIFO为满FIFO当前的水平可通过FTLVL1:0查看如果帧长度8,最多可3字节待

9、发送的数据15接收和发送FIFO图示两个单独的32位FIFOs,各自用于发送和接收对FIFO的或16位宽度:8位FIFO当前位置的标志:FTLVL1:0, FRLVL1:0, TxE, RxNE不超过8位长度的数据帧时,发送和接收FIFO各自不同的容量16FIFO带来的数据pack当数据帧长度不超过1个字节,可通过对SPI_DR的单次16位读写操作同时处理2个数据帧处理LSB字节的数据帧,再MSB字节的数据帧先只传输有效位,2*DS个时钟脉冲用途数据帧较小,通信速度较快,数据pack可降低RxNE和TxE事件的频率,提高系统性能尾巴数据奇数个小数据帧组成的序列中最后一个数据帧的处理发送:最后一

10、次以8位写操作SPI_DR即可接收:最后一次16位读操作后(当FRLVL=01时),把接收 FIFO门限设置成1个字节(FRXTH=1),以产生最后一次 RxNEDMA方式的处理,参见DMA Slide17数据pack的使用图例数据帧长度=4,数据位序=MSB,接收FIFO门限=2字节对SPI_DR的一次16位写操作:0 x040A通过8个时钟脉冲依次发送2个数据:0 x0A 0 x042个数据帧收到FIFO后,触发一次RxNE事件,对SPI_DR的一次16位读操作,从MSB和LSB字节分别获得两个数据帧的内容18SPI通信过程的开始和维持主设备发送使能时:由主设备提供连续的时钟,直到发送FI

11、FO为空且移位寄存器也为空;时钟的节奏由主设备控制只有接收时:一旦使能了SPI和只接收模式,时钟就由主设备送出,时钟节奏不再受主设备控制;直到SPI或只接收模式被关闭关闭操作要在一个时间窗内完成:最后一个数据的第一个位的采样时间之后,下一个数据开始传输之前从设备在时钟到来接收数据或发送数据;因此必须在主设备送出时钟信号之前做好接收的准备,并且把要发送的数据事先放好在发送FIFO中;主设备要给从设备足够的时间做这些准备工作以及对收到的数据处理。19SPI通信的结束有发送操作的通信等待发送FIFO为空 FTLVL=00等待最后一个数据发送完成 BSY=0所有收到的数据,直到接收FIFO为空FRLV

12、L=00关闭SPI SPE=0只有接收操作的通信在特殊时间窗口内关闭只接收模式 RXONLY=0或BIDIOE=1等待最后一个数据传输结束 BSY=0所有收到的数据,直到接收FIFO为空FRLVL=00关闭SPI SPE=020SPI的DMA操作DMA发送和接收请求各自的使能控制 TXDMAEN/RXDMAEN各自请求可以分别使能只使能了DMA发送通道时,发送过程中OVR会被置位各自的触发条件 TxE/RxNE置位使用DMA传输&数据pack时DMA发送/接收通道的PSIZE=16位数据帧长度不超过1个字节对尾巴数据的处理数据自动pack要在使能SPI之前置位LDMA_TX/LDMA_RX来表

13、明要发送/接收的小数据帧个数是奇数21SPI的CRC计算单元特性SPI提供硬件CRC计算单元,在保持通信可靠性的同事,降低系统开销发送、接收有各自的CRC计算单元的使能控制 CRCEN必需在使能SPI之前置位只提供CRC8和CRC16 CRCL当对8位数据帧进行16位CRC计算时,CRC值在总线上的传输占用2个数据帧时间可编程的CRC奇数多项式 CRCPR在由CPHA和CPOL定义的采样时钟沿,对每个数据位进行计算CRC值被最后一个传输通信结束后自动对收到的CRC值进行校验不匹配时置位CRCERR标志,并可产生中断22使用SPI的CRCCPU管理通信过程EXT发送:把最后一个数据写进,来把TX

14、CRCR的值放入发送FIFO只收模式:收到倒数第二个数据后后置位EXT,表置位示最后一个收到的数据要和SPI_RXCRCR的值进行比较收到的CRC放在接收FIFO中,需要通过RxNE标志SPI_DR来复位DMA管理通信过程自动完成对CRC的发送和接收,EXT无需操作DMA发送通道:CNDTR = 数据帧个数(或其一半)DMA接收通道:CNDTR =数据帧个数(或其一半) + 1(或2)收到的CRC值放在memory中通过DMA接收FIFO中的CRC值,复位RxNE23CRC的使用注意事项两个CRC计算单元,CRC8和CRC16。其他长度的数据帧,CRC不可用CRC计算模块的复位置位CRCEN,

15、复位TXCRCR和RXCRCR寄存器关闭SPI 复位CRCEN 置位CRCEN 使能SPICRC计算阶段之后再采样新数据,自动复位TXCRCR和RXCRCR寄存器适用于DMA循环模式从设备使用CRC需注意(同F2)SCK电平稳定后才能使能CRC,否则即使此时SPI还未使能,也会造成之后CRC计算的错误NSS pin needs to be kept low betn data phase and CRC phase Vs.CRC calculation takes place even if a high level on NSS pin24小结:3个使用时间窗的情况通信连续时数据帧之间无间隔

16、,时钟脉冲组是连续的比如主设备的只接收模式,时钟节奏不由主设备掌握以下3种情况需要在时间窗内完成关闭只接收模式 RXONLY= 0改变接收FIFO门限 FRXTH= 1数据阶段结束,进入CRC阶段EXT= 1XT=1 RXONLY=0 FRXTH=1Dummy/Odd/CRCFrameControl windowCPHA=025状态标志:RxNE和TxE发送FIFO有足够空间来写入待发送数据:TxE发送FIFO中现有数据少于或等于16位,硬件置位TxE置位的TxE触发中断或DMA请求,让CPU或DMA可以往发送FIFO写数据了(写SPI_DR)一旦发送FIFO中数据多于16位,硬件复位TxE标

17、志接收FIFO中数据达到门限:RxNE接收FIFO门限FRXTH0,门限为16位数据1,门限为8位数据CPU/DMA可以从接收FIFO读数据了(读SPI_DR)以上情况不满足时,硬件复位RxNE标志26状态标志:BUSY总线忙 Busy,常用于用户关掉SPI并进入低功耗模式前检测通信是否结束用户需要管理何时拉起从设备的片选引脚在多主通信环境中可用于避免写以下情况也会硬件复位BSY标志关闭SPI外设(disable)出现主模式错误主模式:非连续通信时,数据帧间隔的时期从模式:无论通信连续与否,每个数据帧之间会被复位1个时钟周期27Busy位连续通信间隔通信备注主设备通信期间一直保持置位间隔期间被

18、拉低主设备只接收模式下,BSY一直为高(同F2)从设备每字节/半字之间,BSY被拉低一个SPI的时钟周期连续通信下,主、从设备的BSY标志示意图主设备从设备28错误标志29错误类别何时发生影响如何清除主模式错误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中断管理30状态和错误标志中断事件中断使能控制TxE发送缓冲空TxEIERxNE接收缓冲满RxNEIEBUSYMODF主模式错误ERRIEOVR溢出错误CRCERRCRC校验错误TIFRFETI帧格式错误SPI模块的初始化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论