BitArt

Ideas Worth Spreading

导航

Blackfin DSP(七):用SPORT口模拟SPI

Posted on 2013-09-14 07:57  BitArt  阅读(1916)  评论(0编辑  收藏  举报

1.问题的提出

  当系统从SPI device启动时,若SCLK = 133M,则SPI的最大速度为33M。然而,有一些串行的flash设备能更快的运行,因此,如果我们使用SPORT口,它的最大速度为SCLK/2=66M

2.硬件连接方法

  

 

  SPI接口只有主设备发出SCK信号,因此需要将TSCLK配置为内部产生,RSCLK配置为从外部接收,并在硬件上将它们连接在一起;

  DT1PRI作为MOSI,DR1PRI作为MISO。

  根据帧同步信号的特点,将其作为片选信号,作为SCK的门控因子,指示SCK的有效时段。

3.配置方法

  

void Init_SPORT1( void )  /* 由于使用SPI读写时序,所以进行初始化 */
{
    ////////////////发送配置//////////////
    *pSPORT1_TCR1 =  TCKFE|LATFS|LTFS|TFSR|ITFS|ITCLK;
    *pSPORT1_TCR2        = 0x0007;  
    /*8位字长,正常模式*/
    
    ////////////////接收配置//////////////
    *pSPORT1_RCR1        = RCKFE|LARFS|LRFS|RFSR;
    /*rising edge采样、延迟帧同步、低电平有效、需要帧同步、外部帧同步源、外部位时钟、MSB first、禁止接收*/
    *pSPORT1_RCR2        = 0x0007;
    /*8位字长、正常模式*/
    
   /////////////发送位时钟频率设置////////
    *pSPORT1_TCLKDIV      = 0x0003;                                 // TCLK = SCLK/8; 
    *pSPORT1_TFSDIV        = 0x0008;                                 
    
    *pSPORT1_TCR1     = (*pSPORT1_TCR1 | TSPEN);
    *pSPORT1_RCR1    = (*pSPORT1_RCR1 | RSPEN); //使能SPORT1接收
    
}

按照如上的配置,理论上可以产生的波形如下:

示波器实测:

        

从图可以看出,波形的时序关系正好符合SPI的时序关系。