W5100有三種方式與?MCU接口:直接總線接口、間接總線接口和?SPI總線接口。?
直接總線接口模式?
直接總線接口模式采用15位地址線和8位數(shù)據(jù)線,另加/CS,/RD,/WR,/INT等信號線。?

間接地址接口模式?
間接總線接口采用?2位地址線,8位數(shù)據(jù)線,另加/CS,/RD,/WR及/INT等信號線。[14:2]沒用到的地址線經(jīng)過電阻接地。?

間接總線接口模式相關(guān)寄存器說明如下:?

讀/寫內(nèi)部寄存器或存儲器的過程如下:?
1.?先將要讀寫的地址寫入到IDM_AR0或IDM_AR1寄存器當(dāng)中。?
2.?再從IDM_DR寄存器中讀或?qū)憽?
如果要對某個地址順序地讀寫,則可以將模式寄存器?MR的?AI置”1”,然后執(zhí)行一次述第?1項(xiàng)后,在讀寫?IDM_DR,IDM_AR的值將自動加?1。這樣,只需要連續(xù)對?IDM_DR寫,數(shù)據(jù)就可以連續(xù)地讀出或?qū)懭搿?
SPI總線接口?
串行接口模式只需要?4個引腳進(jìn)行數(shù)據(jù)通信。這?4個引腳的定義分別為:SCLK、/SS、MOSI、MISO。W5100的?SPI_EN引腳選擇?SPI操作。?

1?設(shè)備操作?
主控制器(SPI的主設(shè)備)發(fā)出一系列指令控制?W5100的運(yùn)行。SPI主設(shè)備通過四個信號線與W5100通信:從設(shè)備選擇(/SS)、串行時鐘(SCLK)、MOSI(主出從入)和?MISO(主入從出)。?
SPI協(xié)議定義了四種操作模式(模式?0、1、2、3),每種模式的差異在于?SCLK時鐘極性和相位,它控制數(shù)據(jù)在?SPI總線上傳輸。?
W5100工作在?SPI從設(shè)備的模式?0,這是最通用的工作模式。?
模式?0和模式?3的唯一差別在于非工作狀態(tài)時的時鐘?SCLK的極性。在?SPI模式0和模式?3,數(shù)據(jù)在時鐘?SCLK的上升沿鎖定,在時鐘?SCLK的下降沿輸出。?
2?命令?
根據(jù)?SPI協(xié)議,SPI設(shè)備之間只有?2條數(shù)據(jù)線。因此需要定義操作代碼(OP-Code)。W5100使用兩種操作代碼——讀代碼和寫代碼。除了這兩種代碼,其它的操作碼都不響應(yīng)。?
在?SPI模式,W5100使用“完整?32位數(shù)據(jù)流”。?
完整的?32位數(shù)據(jù)流包括一個字節(jié)的操作碼、2個字節(jié)的地址碼和?1個字節(jié)的數(shù)據(jù)。操作碼、地址和數(shù)據(jù)字節(jié)傳輸都是高位(MSB)在前低位(LSB)在后。換句話說,SPI數(shù)據(jù)的第一位是操作碼的高位(MSB),最后一位是數(shù)據(jù)的低位(LSB)。
W5100的?SPI數(shù)據(jù)格式如下:?
3?SPI主設(shè)備操作?
1.?配置SPI主設(shè)備輸入/輸出方向?
l */SS(從設(shè)備選擇):輸出?
l *SCLK(串行時鐘):輸出?
l *MOSI(主輸出從輸入):輸出?
l *MISO(主輸入從輸出):輸入?
2.?配置/SS為高電平?
配置SPI主設(shè)備的寄存器?
l *SPI使能位在SPCR寄存器(SPI控制寄存器)?
l *主/從設(shè)備選擇位在SPCR寄存器?
l *SPI模式選擇在SPCR寄存器?
l *SPI數(shù)據(jù)速率在SPCR寄存器和SPSR寄存器(SPI狀態(tài)寄存器)?
4.?向SPDR寄存器(SPI數(shù)據(jù)寄存器)寫入要傳輸?shù)臄?shù)據(jù)?
5.?配置/SS為低電平?
6.?等待接收完成?
7.?如果所有數(shù)據(jù)都傳輸完成,配置/SS為高電平?

電子發(fā)燒友App

















評論