上海婦科疾病研究所 上海女性不孕醫(yī)院 上海引產(chǎn)醫(yī)院 無痛引產(chǎn)痛不痛 上海人流醫(yī)院 白癜風(fēng)治療醫(yī)院 上海小兒腦癱醫(yī)院 上海女子醫(yī)院
管理书籍排行榜,遮天 辰东 小说,好看的小说完本推荐

国产精品无码毛片AV_亚洲毛片精品在线_全球黄色短视频在线免费观看_亚洲一区二区爱av_成年人免费观看网址_欧美美女性爱喷水网址_亚洲毛片av无码不卡_国产无码视频在线观看_高清国语自产拍在线播放_女人午夜免费黄片

用戶名: 密碼:
主頁 設(shè)為首頁 加入收藏
      產(chǎn)品中心       技術(shù)中心       下載中心        社區(qū)新聞        誠聘英才       大學(xué)計(jì)劃        關(guān)于我們       技術(shù)論壇
  您的當(dāng)前位置:ADSP開源社區(qū) >> 技術(shù)中心 >> Blackfin 今天是:
技術(shù)中心  
SigmaDSP
SHARC
A2B音頻總線
Blackfin
ADI操作系統(tǒng)
ADSP-218X
TigerSAHRC
ADI DSP仿真器
產(chǎn)品導(dǎo)航
ADI DSP仿真器
SigmaDSP開發(fā)板
ADI A2B總線開發(fā)板
SHARC DSP開發(fā)板
銷售網(wǎng)絡(luò)
Blackfin  
Blackfin的技術(shù)文章和教學(xué)視頻連載10:SPI
[ 作者:OP ] [ 來源:ADSP開源社區(qū) ] [ 發(fā)布時(shí)間:2014-8-8 ]
   還是單獨(dú)一章講講SPI吧。
 
    SPI是非常常見的嵌入式處理器接口,每一個(gè)ADI的DSP均有此接口,我們以BF533為例來進(jìn)行簡單講解,如果有嵌入式開發(fā)經(jīng)驗(yàn)者,一看便知。
 
    BF533的SPI接口是4線串口,可以連接SPIFLASH,SPI 接口的AD,DA 等等。ADSP-BF53x 的SPI 接口支持主機(jī)模式和從機(jī)模式,它有7個(gè)SPI從機(jī)片選,在主機(jī)模式下,它同時(shí)可以掛載7個(gè)SPI 設(shè)備,還可以在主機(jī)模式或從機(jī)模式下進(jìn)行BOOT啟動(dòng)。
 
    SPI 管腳定義:
 
    管腳定義               功能
    MOSI                   主輸入從輸出接口,根據(jù)主機(jī)和設(shè)備模式確定功能
    MISO                   從輸入主輸出接口,根據(jù)主機(jī)和設(shè)備模式確定功能
    SCK                    SPI時(shí)鐘
    SPISELx                SPI設(shè)備選則接口
    SPISS                  SPI從機(jī)片選接口
 
    SPI 接口時(shí)鐘最快可以到系統(tǒng)時(shí)鐘的1/4,其配置公式為:
    SCK Frequency = (Peripheral clock frequency SCLK)/(2 x SPI_BAUD)
 
    SPI的接口寄存器詳細(xì)說明:
 
    寄存器                 功能
    SPI_CTL                SPI 控制寄存器,配置SPI 工作模式及相位等
    SPI_F/G                SPI 從機(jī)選擇寄存器,用于選擇使用哪一個(gè)片選控制設(shè)備
    SPI_STAT               SPI 狀態(tài)寄存器,獲取SPI 當(dāng)前工作狀態(tài)
    SPI_TDBR               SPI 數(shù)據(jù)傳輸寄存器
    SPI_RDBR               SPI 數(shù)據(jù)接收寄存器
    SPI_SHADOW             SPI_RDBR 的影子寄存器,可用于讀取數(shù)據(jù)
 
    讓我們來看一段SPI的代碼:
 
*pSPI_BAUD=2; //配置速率為1/4 系統(tǒng)時(shí)鐘 SPI 速率 = SCLK/2*SPI_BAUD
*pSPI_F/G |=FLS2; //選擇SPISEL2 接口
*pSPI_CTL = 0x1001|CPHA| CPOL; //配置模式為手動(dòng)片選模式
*pSPI_CTL = (*pSPI_CTL | SPE); //使能SPI 接口
*pSPI_F/G &= ~F/G2; //將SPISEL2 拉到0
while(!(*pSPI_STAT & SPIF)); //查看SPI 傳輸狀態(tài)是否完成
*pSPI_TDBR = 0x55; //將數(shù)據(jù)送入SPI 傳輸數(shù)據(jù)寄存器
*pSPI_F/G |= F/G2; //將SPISEL2 拉到1,完成數(shù)據(jù)傳輸
*pSPI_F/G &= ~F/G2; //將SPISEL2 拉到0
while(*pSPI_STAT & RXS)//查看SPI 傳輸狀態(tài)是否有數(shù)據(jù)需要接收
i = *pSPI_RDBR; //讀取數(shù)據(jù)
*pSPI_F/G |= F/G2; //將SPISEL2 拉到1,完成數(shù)據(jù)傳輸
 
    ADSP-BF53x 的SPI 接口支持手動(dòng)片選和自動(dòng)片選兩種模式,通過SPI_CTL 寄存器的CPHA 和CPOL 位配置,例子代碼采用的是手動(dòng)片選模式,每次讀取數(shù)據(jù)和數(shù)據(jù)讀取結(jié)束后需要通過代碼來選通和關(guān)閉片選,自動(dòng)片選的例子可以參考我的53x開發(fā)板驅(qū)動(dòng)程序中的SD卡驅(qū)動(dòng)代碼。
 
    上傳一個(gè)源碼供大家參考,代碼實(shí)現(xiàn)了采用 SPI 接口發(fā)送0x55 數(shù)據(jù)和讀取SPI 接口數(shù)據(jù)。由于沒有相關(guān)硬件為 SPI 發(fā)送數(shù)據(jù),所以代碼只是為了學(xué)習(xí)SPI 接口的使用,實(shí)現(xiàn)了讀取和傳輸數(shù)據(jù)的功能,并不能查看發(fā)送數(shù)據(jù)和讀取數(shù)據(jù)的結(jié)果。
 
    SPI的部分我也錄過一個(gè)教學(xué)視頻做詳細(xì)講解,會再下一章講完Timer之后一并貼出來!下一章就會說一下Blackfin的Timer。
 
    補(bǔ)一下上面的那段代碼的完整源碼:
 
    鏈接: http://pan.baidu.com/s/1i3Lyxe9 密碼: opr2
聯(lián)系我們 | 關(guān)于我們 | 免責(zé)聲明 | 誠征英才 | 友情鏈接
Copyright 2019 All rights reserved  本網(wǎng)頁版權(quán)屬Open ADSP所有
北京海淀區(qū)中關(guān)村大街32號新中發(fā)市場3659 郵編100100
電話 18611096839 
粵ICP備14035876號-1