資源描述:
《DSP完整課件第10課第11章串行外設(shè)接口SPI.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、SPISIMO-SPI從輸入、主輸出SPISOMI-SPI主輸入、從輸出SPICLK-SPI時(shí)鐘SPISTE*-SPI從發(fā)送使能第11章串行外設(shè)接口SPISPI:高速同步串行輸入/輸出端口,傳送速率可編程,應(yīng)用:外部移位寄存器、D/A、A/D、串行EEPROM、LED顯示驅(qū)動(dòng)器等外部設(shè)備進(jìn)行擴(kuò)展。11.1串行外設(shè)接口的結(jié)構(gòu)(1)4個(gè)外部引腳,以下引腳都可用作數(shù)字I/O引腳。(2)主/從操作模式。(3)發(fā)送、接收雙緩沖。SPI模塊中有9個(gè)寄存器用于控制該模塊的操作:(1)SPICCR:SPI配置控制寄存器。(2)SPICTL:
2、SPI操作控制寄存器。(3)SPISTS:SPI狀態(tài)寄存器。(4)SPIBRR:SPI波特率寄存器。(5)SPIRXEMU:SPI仿真緩沖寄存器。(6)SPIRXBUF:SPI串行輸入緩沖寄存器。(7)SPITXBUF:SPI串行發(fā)送緩沖寄存器。(8)SPIDAT:SPI串行數(shù)據(jù)寄存器。(9)SPIPRI:SPI優(yōu)先級(jí)控制。11.2.1SPI操作下圖是SPI用于兩個(gè)控制器(一個(gè)主控制器和一個(gè)從控制器)通信的典型連接方式。SPICLKSPICLKSPISIMOSPISIMOSPISTE*SPISTE*SPISOMISPISOM
3、I主出/從入SPI選通主入/從出串行時(shí)鐘SPI主/從控制器連接SPI主控制器SPI從控制器SPI可工作于主模式或從模式。SPICTL.2位---MASTER/SLAVE用來選擇操作模式和SPICLK的源。(1)主模式將Master的數(shù)據(jù)傳送給Slave,數(shù)據(jù)傳送完畢,申請(qǐng)中斷。(2)從模式將Slave的數(shù)據(jù)傳送給Master,數(shù)據(jù)傳送完畢,申請(qǐng)中斷。SPICLKSPIMOSISPICLK時(shí)鐘SPIMOSISPICLKSPIMISOSPISTESPICLK時(shí)鐘SPIMISOSPISTE由圖知,SPI有兩種工作模式:主模式和從模
4、式,操作模式由SPICTL.2(MASTER/SLAVE位)決定。數(shù)據(jù)的發(fā)送方式有三種:(1)主控制器發(fā)送數(shù)據(jù),從控制器發(fā)送偽數(shù)據(jù);(2)主控制器發(fā)送數(shù)據(jù),從控制器發(fā)送數(shù)據(jù);(3)主控制器發(fā)送偽數(shù)據(jù),從控制器發(fā)送數(shù)據(jù)。主控制器控制SPICLK信號(hào),通過發(fā)出SPICLK信號(hào)啟動(dòng)數(shù)據(jù)發(fā)送,從控制器則通過檢測(cè)SPICLK信號(hào)接收數(shù)據(jù)。一個(gè)主控制器可以連接多個(gè)從控制器,但是一次只允許一個(gè)從控制器給主控制器發(fā)送數(shù)據(jù)11.2.2串行外設(shè)接口中斷有五個(gè)控制位用于初始化串行外設(shè)接口的中斷:SPI中斷使能位:SPIINTENA(SPICTL.
5、0);SPI中斷標(biāo)志位:SPIINTFLAG(SPISTS.6);SPI超限中斷使能位:OVERRUNINTENA(SPICTL.4);SPI接收器超限中斷標(biāo)志位:RECEIVEROVERRUNFLAG(SPISTS.7)SPI中斷優(yōu)先級(jí)選擇位:SPIPRIORITY(SPIPRI.6)。11.2.3SPI模塊的控制寄存器1.SPI配置控制寄存器(SPICCR)7040H對(duì)SPI的操作進(jìn)行設(shè)置76543210軟件復(fù)位位移位時(shí)鐘極性保留保留數(shù)據(jù)長(zhǎng)度控制位2.SPI操作控制寄存器(SPICTL)7041H76543210保留保留
6、保留超時(shí)中斷使能SPI時(shí)鐘相位選擇位主從機(jī)設(shè)置位發(fā)送允許位SPI中斷使能位3.SPI狀態(tài)寄存器(SPISTS)7042HSPISTS接受緩沖器狀態(tài)位76543210接收超時(shí)標(biāo)識(shí)位中斷標(biāo)識(shí)位發(fā)送緩沖器滿保留保留保留保留保留4.SPI波特率設(shè)置寄存器(SPIBRR)7044H設(shè)置波特率76543210保留波特率設(shè)置位SPI為主機(jī)則決定傳輸率6.SPI接收緩沖器寄存器(SPIRXBUF)7047HSPIRXBUF接收緩沖器讀取該寄存器會(huì)清除SPISTS.6D15-D0接收到的數(shù)據(jù),由于數(shù)據(jù)首先移動(dòng)到SPIRXBUF的最高位,所以寄
7、存器中數(shù)據(jù)采用右對(duì)齊存儲(chǔ)方式。7.SPI發(fā)送緩沖器寄存器(SPITXBUF)7048H存放下一個(gè)要發(fā)送的數(shù)據(jù),寫入數(shù)據(jù)會(huì)把TXBUFFLAG標(biāo)識(shí)位置1,當(dāng)前數(shù)據(jù)發(fā)送完之后,該寄存器內(nèi)容自動(dòng)裝入SPIDAT然后自動(dòng)清除TXBUFFLAG主模式下如果沒有進(jìn)行的發(fā)送,寫入將啟動(dòng)一個(gè)發(fā)送9.SPI中斷優(yōu)先級(jí)控制寄存器(SPIPRI)704FHSPIPRI控制SPI中斷的優(yōu)先級(jí)76543210保留中斷優(yōu)先級(jí)設(shè)置位SPI仿真掛起操作控制位保留保留保留保留11.2.4SPI的設(shè)置SPI通信時(shí),要發(fā)送的數(shù)據(jù)從SPIDAT寄存器的MSB依次移
8、出,接收的數(shù)據(jù)則從SPIDAT的LSB依次移入。SPI數(shù)據(jù)字符位數(shù)(1-16位)由SPICCR.3-0指定。當(dāng)寫入SPIDAT或SPITXBUF時(shí),數(shù)據(jù)必須是左對(duì)齊的。數(shù)據(jù)從SPIRXBUF讀回時(shí)是右對(duì)齊的。SOMILSB移位寄存器主機(jī)SIMOMSBMSB移位寄存器SPIDATLSB2.S