ISD1700系列的SPI操作,及其與MEGA16的簡單應用

來源:互聯網
上載者:User

ISD1700系列的SPI串列介面操作遵循一下協議:

1、一個SPI處理開始於/SS管腳的下降沿;                                         

2、在一個完整的SPI指令傳輸周期,/SS管腳必須保持低電平;

3、資料在SCLK的上升沿所存在晶片的MOSI管腳,在SCLK的下降沿從MISO管腳輸出,低位先出;

4、SPI指令作業碼包括命令位元組、資料位元組和地址位元組,這取決於1700的命令類型;

5、當命令字及地址資料輸入到MOSI管腳時,同時“狀態寄存器”和當前地址資訊從MISO管腳輸出;

6、一個SPI處理在/SS變高後啟動;

7、在完成一個SPI命令的操作後,會啟動一個中斷資訊,且持續為低,直到晶片收到CLR_INT指令或複位。

空閑狀態下:

/SS=HIGH;SCLK=HIGH;MOSI=LOW

MEGA16L相關SPI寄存器及設定:

SPCR,SPI控制寄存器:初始化為SPCR=0X78;意思是SPI中斷不使能,SPI使能,低位先發,主機模式,SCK空閑高電平,起始沿
(下降沿)採樣。

SPSR,SPI狀態寄存器:僅0位可讀寫,SPI2X=0,配合SPCR的0、1位為0,設定SCLK頻率為4分頻(晶振)。

程式化描述:

1、MCU拉低/SS管腳:/SS=0;

2、SET_PLAY命令移入SPDR寄存器:SPDR=CDATA;//CDATA IS COMMAND DATA

                                                           
WHILE(!(SPSR&(1<<SPIF))); // WAITE UNTIL SEND OVER

3、接收位元組傳回值:   WHILE(!(SPSR&(1<<SPIF))); // WAITE UNTIL
RECEIVE OVER

                                             RETURN SPDR;

4、重複以上過程6次,直到SET_PLAY命令和地址發送完成,接收完成;

***注意 若返回的第一個位元組的0位為1,表示以上命令發送失敗,重新發送***

***注意接收時序,在每發送一個位元組以後,接收一個位元組。

流程說明為:SPDR=DATA;    //發送資料 DATA

                     WHILE(!(SPSR&(1<<SPIF)));

                     RETURN SPDR;//返回接收資料 或寫成 “D_BUF=SPDR;”將資料存放區起來。

5、拉高/SS:/SS=1;

6、等待RDY/INT管腳變低:WHILE(RDY);//WAITE UNTIL RDY=0

7、發送CLR_INT命令。(具體過程類似2、3步,僅內容和長度差異)

××××××思考:SPIF位在何時清零,以上程式沒有特別關注其清零,故有可能在發送完成,轉入接收的過程中轉入死迴圈或者接收失敗,有待檢驗。

void spi_init()
{
   uchar temp;
   temp = SPSR;  
   temp = SPDR;      
}

以上子函數可以清零SPIF位。

整個播放流程描述為:

VOI_PU(); //
ISD1760上電命令,發送PU指令,函數包括一個Tpu延時時間為(400/Fclk),Fclk為SPI匯流排頻率,時間單位為秒,頻率單位為赫茲。
SPI Clock Rate: 2764.800 kHz,為例,延時為145微秒(取整)。

VOI_CLR(); //發送INT_CLR指令,清RDY/INT 位為1

while(!RDY);//等待,直到確實為1,

VOI_PLAY(); // 發送SET—PLAY指令,地址等,內容見上。

vOI_CLR(); //清RDY/INT 位為1

vOI_PD();   //發送INT_CLR指令, ISD1760掉電命令

***注意,INT_CLR指令、PU指令和SET_PLAY指令都有傳回值,以檢驗通訊正確性,詳見“開發手冊”。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.