TMS320F28335——SPI使用筆記


一、SPI硬件接口

  

  GPIO54    -------    SPISIMOA

  GPIO55    -------    SPISOMIA

  GPIO56    -------    SPCLK

  GPIO57    -------    SPSTEA

  配置IO功能:

  如上圖所示,需要配置IO為SPI模式 只需要寫入對應位為  1即可。代碼如下

    GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1; // Configure GPIO54 as SPISIMOA
    GpioCtrlRegs.GPBMUX2.bit.GPIO55 = 1; // Configure GPIO55 as SPISOMIA
    GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 1; // Configure GPIO56 as SPICLKA
    GpioCtrlRegs.GPBMUX2.bit.GPIO57 = 1; // Configure GPIO57 as SPISTEA

二、設置SPI相關寄存器  

  SPI寄存器描述文檔:http://www.ti.com/lit/ug/sprueu3a/sprueu3a.pdf

 

  1、初始化SPI FIFO相關寄存器

  SPIFFTX:FIFO發送寄存器

  SPIFFRX:FIFO接收寄存器

  SPIFFCT:FIFO控制寄存器

  代碼如下:

void spi_fifo_init()                                        
{
    SpiaRegs.SPIFFTX.all=0xE040;//使能FIFO;清除發送中斷標志位;禁止FIFO發送中斷;
                                //發送中斷級別定義為0;
    SpiaRegs.SPIFFRX.all=0x204f;//清除FF溢出標志位;清除溢出接受中斷標志位;禁止
                                //FF接受中斷;接受中斷級別為16;
    SpiaRegs.SPIFFCT.all=0x0;//SPITXBUF到移位寄存器傳送不延遲;
}  

  2.設置SPI相關寄存器

  SPICCR:配置控制寄存器

  SPICTL:運行控制寄存器

  SPIBRR:波特率寄存器

  SPIPRI:優先級控制寄存器

  初始化代碼:

//初始化SPI函數
void spi_init()
{    
    SpiaRegs.SPICCR.all =0x004F;// SPI軟件復位, 極性位為1(下降沿發送數據), 每次移
                                //進和移出16位字長度;禁止SPI內部回送(LOOKBACK)功能;
    SpiaRegs.SPICTL.all =0x0006; // 使能主機模式,正常相位,使能主機發送,禁止接收
                                //溢出中斷,禁止SPI中斷;
                                   
    SpiaRegs.SPIBRR =0x007F;    //SPI波特率=25M/128    =195.3KHZ;                            
    SpiaRegs.SPICCR.all =0x00CF;//停止SPI軟件復位准備接收或發送;禁止回送模式; 
    SpiaRegs.SPIPRI.bit.FREE = 1;  // 自由運行     
}

三、使用SPI發送數據

  發送數據就比較簡單了只需要向  SPITXBUF 寫入數據即可。

  

//發送SPI數據
void spi_xmit(Uint16 a)
{
    SpiaRegs.SPITXBUF=a;
}    

 四 SPIA串口有時鍾線有數據輸出,但是SIMO  IO沒有數據輸出的問題。

  

收發數據代碼:

 

 SPI配置代碼:

 

 

 

 

   由於MSB在前,數據是從高位一位一位的輸出,所以在 輸出8位的時候需要將數據移到bit15-bit8的位置。

  也有可能設置了回環模式也會出現這種情況。發送接收代碼如圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM