12.同步串行接口(SSP)
12.1.模塊介紹
SPI_IIC 模塊可用作 SPI接口通信和 IIC接口通信,兩種功能同一時(shí)間只能選擇其中一種使用。該模塊集成兩種接口協(xié)議,節(jié)省資源的同時(shí)又能滿足不同的應(yīng)用需求。
12.2.功能特點(diǎn)
12.2.1. SPI功能
? 支持主模式和從模式工作
? 支持 1~32bit傳輸
? 支持 5byte發(fā)送/接收數(shù)據(jù)緩沖
? 傳輸數(shù)據(jù)順序 MSB和 LSB
? 支持標(biāo)準(zhǔn)模式,三線模式
? 可觸發(fā)中斷的專用發(fā)送和接收標(biāo)志
12.2.2. IIC功能
? 支持主模式和從模式
? 主模式支持時(shí)鐘同步和總線仲裁
? 從模式支持在發(fā)送數(shù)據(jù)沒有準(zhǔn)備好或者接收緩沖器滿時(shí)候拉低 SCL
? 從模式支持 7bit地址或者 10bit地址
? 從模式支持接收廣播地址
? 支持 5byte發(fā)送/接收數(shù)據(jù)緩沖
12.3.功能說明
12.3.1. SPI工作模式
? 模式 0:時(shí)鐘空閑為 0,上升沿采樣,下降沿出數(shù)據(jù)
? 模式 1:時(shí)鐘空閑為 0,下降沿采樣,上升沿出數(shù)據(jù)
? 模式 2:時(shí)鐘空閑為 1,下降沿采樣,上升沿出數(shù)據(jù)
? 模式 3:時(shí)鐘空閑為 1,上升沿采樣,下降沿出數(shù)據(jù)
12.3.2. SPI接口模式
? 標(biāo)準(zhǔn)模式:通信線有 CLK,CS,IO0(MOSI),IO1(MISO),一個(gè) CLK傳輸 1bit數(shù)據(jù)
? 三線模式:通信線有 CLK,CS,IO0,接收和發(fā)送都通過 IO0,一個(gè) CLK傳輸 1bit數(shù)據(jù)12.3.3. SPI數(shù)據(jù)幀與內(nèi)部緩存
SPI可支持 1~32bit幀數(shù)據(jù)傳輸,內(nèi)部集成了一個(gè) 40bit的緩沖區(qū),根據(jù)配置的數(shù)據(jù)幀長(zhǎng)度不同,緩沖區(qū)能緩存的幀數(shù)也不一樣。數(shù)據(jù)幀長(zhǎng)度<=8bit?時(shí),緩沖區(qū)可容納 5?幀數(shù)據(jù),8bit<數(shù)據(jù)幀長(zhǎng)度<=16bit時(shí),緩沖區(qū)可容納兩幀數(shù)據(jù),數(shù)據(jù)幀長(zhǎng)度>16bit時(shí),緩沖區(qū)可容納 1幀數(shù)據(jù),當(dāng)緩沖區(qū)無法再容下一幀數(shù)據(jù)時(shí),緩沖區(qū)滿標(biāo)志會(huì)置 1。
12.3.4. IIC主機(jī)時(shí)鐘同步和總線仲裁
IIC主機(jī)模式時(shí),在多主機(jī)的應(yīng)用場(chǎng)景下,支持時(shí)鐘同步和總線仲裁。當(dāng)總線上連接了不止一個(gè)主機(jī)時(shí),就會(huì)存在同時(shí)發(fā)起通信的情況,這時(shí)候需要時(shí)鐘同步以及總線仲裁機(jī)制決定由哪個(gè)主機(jī)占用總線完成數(shù)據(jù)傳輸。
時(shí)鐘同步的原理:IIC總線上的不同主機(jī)可能發(fā)起傳輸時(shí)的時(shí)鐘頻率不一樣,通過時(shí)鐘同步機(jī)制,可以讓所有主機(jī)的時(shí)鐘同步,才能進(jìn)行逐位仲裁。所有主機(jī)的 SCL在總線上是線與的關(guān)系,當(dāng)總線上的 SCL由高切換到低電平時(shí),所有主機(jī)從 0開始計(jì)算低電平周期時(shí)間。當(dāng)電平時(shí)間達(dá)到時(shí),如果總線上的其它主機(jī)的 SCL低電平仍然保持,那么其它主機(jī)進(jìn)入高電平等待狀態(tài),等低電平時(shí)間最長(zhǎng)的主機(jī)的 SCL拉高時(shí)再統(tǒng)一拉高。因此,總線上同步后的 SCL的低電平時(shí)間由低電平周期最長(zhǎng)的主機(jī)決定,而高電平時(shí)間由高電平周期最短的主機(jī)決定。總線仲裁原理:IIC總線上不同主機(jī)的 SDA線也是線與的關(guān)系,各主機(jī)在 SCL線為高電平時(shí),檢查SDA線的電平是否和自己發(fā)送的 SDA信號(hào)一致,如果檢測(cè)到 SDA線為低電平時(shí),自己要發(fā)送的 SDA信號(hào)為高電平,那么該主機(jī)仲裁失敗,停止總線上的傳輸動(dòng)作。
12.3.5. IIC從機(jī)拉低 SCL
IIC從機(jī)在發(fā)送狀態(tài)下如果緩沖區(qū)中沒有可發(fā)送的數(shù)據(jù),或者在接收狀態(tài)下緩沖區(qū)已滿時(shí),將會(huì)在 SCL端口輸出低電平,拉低總線上的 SCL信號(hào)使主機(jī)暫停發(fā)送時(shí)鐘。當(dāng)從機(jī)準(zhǔn)備好發(fā)送或者接收后,將在 SCL輸出高電平,主機(jī)又可以重新控制總線上的 SCL線,恢復(fù)數(shù)據(jù)傳輸。
12.3.6. IIC從機(jī)支持 7bit/10bit尋址
IIC從機(jī)支持 7bit或者 10bit尋址模式,由寄存器 CON0的 IIC_SLAVE_ADDR_WIDTH位決定。7bit模式下,主機(jī)需要在 TX模式下發(fā)送帶 START位的 7bit地址,最后 1bit為 R/W標(biāo)志。當(dāng)主機(jī)寫從機(jī)時(shí),尋址完成即可進(jìn)行數(shù)據(jù)發(fā)送。當(dāng)主機(jī)讀從機(jī)時(shí),尋址完成后,主機(jī)需要改成 RX模式,然后配置準(zhǔn)備接收的數(shù)據(jù)長(zhǎng)度(寄存器 DMA_LEN),然后對(duì)寄存器 CMD_DATA寫任意值啟動(dòng)接收。10bit模式下,主機(jī)需要在 TX模式下發(fā)送帶 START位的第 1byte地址(此時(shí) R/W位為 1),接著發(fā)送第 2byte地址,此時(shí)如果收到從機(jī)的 ACK信號(hào),則為尋址成功。接下來如果是主機(jī)寫從機(jī),就可以直接進(jìn)行數(shù)據(jù)發(fā)送。如果是主機(jī)讀從機(jī),那么需要主機(jī)再次發(fā)送帶 START為的第 1byte地址(此時(shí) R/W為 1),然后切換成 RX模式,配置寄存器 DMA_LEN,并且對(duì)寄存器 CMD_DATA寫任意值啟動(dòng)讀數(shù)據(jù)。
主機(jī)讀從機(jī)時(shí),從機(jī)被尋址成功且收到讀標(biāo)志時(shí),需要切換成 TX模式,并且往緩沖區(qū)中寫入要發(fā)送的數(shù)據(jù)。
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
456文章
51004瀏覽量
425251 -
單片機(jī)
+關(guān)注
關(guān)注
6040文章
44587瀏覽量
636785 -
mcu
+關(guān)注
關(guān)注
146文章
17194瀏覽量
351879 -
接口
+關(guān)注
關(guān)注
33文章
8663瀏覽量
151495 -
SSP
+關(guān)注
關(guān)注
0文章
16瀏覽量
11585
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論