1.問題的提出spa
當系統從SPI device啓動時,若SCLK = 133M,則SPI的最大速度爲33M。然而,有一些串行的flash設備能更快的運行,所以,若是咱們使用SPORT口,它的最大速度爲SCLK/2=66M。code
2.硬件鏈接方法blog
SPI接口只有主設備發出SCK信號,所以須要將TSCLK配置爲內部產生,RSCLK配置爲從外部接收,並在硬件上將它們鏈接在一塊兒;接口
DT1PRI做爲MOSI,DR1PRI做爲MISO。同步
根據幀同步信號的特色,將其做爲片選信號,做爲SCK的門控因子,指示SCK的有效時段。flash
3.配置方法it
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接收 }
按照如上的配置,理論上能夠產生的波形以下:class
示波器實測:配置
從圖能夠看出,波形的時序關係正好符合SPI的時序關係。硬件