我是靠谱客的博主 成就溪流,最近开发中收集的这篇文章主要介绍SPI (四) 连续选中模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一些外部设备每次传输之间必须取消选择。另外一些必外设须在多个顺序串行传输之间保持选中。
连续选择格式提供了处理以下情况的灵活性。通过设置SPI命令中的CONT位,可以为SPI配置启用连续选择格式。

经典模式

SPIx_PUSHR[CONT] = 0 //设备连续选中模式,两个设备传输之间,每隔一定帧后将PCSn信号到返回非活动状态

SPIx_MCR[CONT_SCKE] = 0 //禁止SCK连续模式

当CONT位= 0时,模块将断言的片选信号驱动到帧之间的空闲状态。
片选信号的空闲状态由MCR中的PCSISn位选择。以下时序图用于两个四位传输,CPHA = 1且CONT = 0。 

 

 设备连续选中模式

SPIx_PUSHR[CONT] = 1 

SPIx_MCR[CONT_SCKE] = 0 

SPIx_MCR[CPHA] = 1

当CONT位= 1时,PCS信号在两次传输期间保持有效。传输之间没有插入传输之间的延迟(tDT)
下图显示了CPHA = 1CONT = 1的两个四位传输的时序图。 

 

使用具有外设连续选中的模式时,请遵循以下规则:

  • 所有发送命令必须具有相同的PCSn位编程。
  • 由发送命令选择的CTAR必须使用相同的传输属性进行编程。在这些CTAR中,只能对FMSZ字段进行不同的编程。 
  • 在此模式下发送多个帧时,用户软件必须确保最后一帧在主模式下将PUSHR [CONT]位置为无效,并且用户软件必须在TX_FIFO中提供足够的帧以在从模式下发送出去并且主机无效 最后一帧传输结束时的PCSn。
  • 在主模式下断言MCR [HALT]之前,必须将PUSHR [CONT]置为无效。
    这将确保PCSn信号无效。 在连续传输期间断言MCR [HALT]将导致PCSn信号保持有效,因此从器件不能从运行状态转换为停止状态。 

NOTE

  • 在TX FIFO变空之前,用户必须在PCS断言下填充TX FIFO。 
  • 在从模式下工作时,确保当TX FIFO中的最后一个条目完全发送时,即相应的TCF标志置位且TXFIFO为空时,从器件被取消选中,避免进行任何进一步的串行通信; 否则,发生下溢错误 

连续串行通信时钟

  • SPIx_PUSHR[CONT] = 0
  • SPIx_MCR[CONT_SCKE] = 1
  • MCR [HALT] = 0
  • MCR [CPHA] = 1 #奇数时钟延数据有效,偶数时钟延主设备/外设 采样

 该模块提供为需要连续时钟的从外设生成连续SCK信号的选项

通过设置MCR中的CONT_SCKE位来使能连续SCK。 仅当MCR [HALT]位为低时,使能该位才会产生连续SCK。 连续SCK在所有配置中都有效。 

连续SCK 模式下必须使CPHA = 1。如果CONT_SCKE位置1,CPHA位清零无效。修改传输格式支持连续SCK。

Continuous SCK模式的时钟和传输属性根据以下规则设置:

  • When the module is in SPI configuration, CTAR0 is used initially. At the start ofeach SPI frame transfer, the CTAR specified by the CTAS for the frame is used.
  • In all configurations, the currently selected CTAR remains in use until the start of aframe with a different CTAR specified, or the Continuous SCK mode is terminated 

启用Continuous SCK会禁用PCS到SCK延迟,并且传输后延迟(tDT)固定为一个SCK周期。
下图是禁用连续选择的连续SCK格式的时序图。 

NOTE

  • 在连续SCK模式下,对于SPI传输,应始终使用CTAR0,并且必须在启动传输之前使用MCR [CLR_TXF]字段清除TX FIFO。 

 

设备、时钟连续 

如果SPIx_PUSHR[CONT]位置1,则PCS在传输之间保持有效,即外部设备与主机连续选中。
此时,SCK可以继续PCS置位,但没有数据从SOUT移出,也就是说,如果SOUT变高,
这可能导致从站接收不正确的数据。 在这些条件极有可能发生包括: 

  • 连续SCK,CONT位置1,但TX FIFO中没有数据。
  • 连续SCK,CONT位置1,位并进入停止状态(参见模块传输的启动和停止)。
  • 连续SCK,CONT位置1,并进入停止模式或模块禁用模式。

下图显示了启用设备连续选中以及连续SCK格式的时序图 :

最后

以上就是成就溪流为你收集整理的SPI (四) 连续选中模式的全部内容,希望文章能够帮你解决SPI (四) 连续选中模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部