天天看點

再次調試STM32F407+DP83848

早在還沒有畢業前,就調試過STM32F407+DP83848,這次又調試了一次,居然花了2天時間。STM32支援兩種工業級标準的接口,來與外部實體層 PHY子產品相連,分别是獨立于媒體的接口(MII)和簡化的獨立于接口的接口(RMII)。之前PHY晶片使用的MII模式,現在的這次調試是使用的RMII模式(參考了各方原理圖,主要還是以官方開發闆的MB786為主)。我還是以一個ST官方手冊上的圖來說說我的使用情況吧。

再次調試STM32F407+DP83848
再次調試STM32F407+DP83848

1.     如果我們按照這個圖上來畫原理圖,這個肯定沒有錯,但是對于一般使用(我們用的都是全雙工的),CRS和COL這兩根線使用的不多,至于為什麼,我也說的不是很清楚,了解的同學們,可以補充下。

2.     對于連接配接DP83848和stm32時,在電路上是否要串行電阻,串接多大的問題。借網友的回答是這樣的:串接電阻這是用來做阻抗比對,防止信号反射的。一般PCB走線控制為50歐姆,在這樣接收端高阻的情況時,可以通過源端串聯50歐姆來做比對,将終端反射回來的信号吸收,防止在源端再次發生發射。至于,串接多大的電阻,由信号驅動的内阻(大約20歐)決定,與PCB走線比對。是以這個電阻在PCB上的位置要和信号驅動端靠近。要不要做比對就取決于信号的速度和走線長度,規則一般是走線長度大于信号波長的1/10就要比對了,50M的時鐘最好是接一下了,不然會看到明顯的過沖。參考各方資料,一般接上33歐到50歐的電阻都可以接受。

3.     這裡對于MII模式加以說明哪些引腳需要上拉和下拉。

        MDIO需要1.5K的上拉電阻,MDC不需要上拉電阻,DP83848的LED_ACT、LED_SPEED、LED_LINK都需要2.2K的上拉電阻;

        DP83848的RD-、RD+、TD-、TD+需要上拉49.9歐1%的電阻,并且還需要兩個0.1uf的電容接地;

        DP83848的20, 21引腳RESERVED必須要接2.2K上拉電阻,和24引腳RBIAS需要一個4.87K歐1%的電阻接地,引腳18、23、37需要電容接地,這些都需要嚴格按照DP83848的手冊來連接配接電路。

        另外,39引腳不需要上拉電阻,如果是RMII模式,就需要2.2K的電阻,這樣就選擇了我們是使用的RMII模式。

        其中,有個重要的信号一定要注意,這個也是我在使用RMII模式沒有注意的,stm32 的ETH_RMII_REF_CLK / ETH_MII_RX_CLK 信号線PA1沒有連接配接,使用RMII模式的時候,PA1應該連接配接到時鐘源上面。

        最後,DP83848的7引腳,一般還是建議上拉2.2K電阻,并且,将其連接配接到STM32的IO引腳,因為我們一般還是需要使用一些中斷來處理事件,比如,網線熱插拔問題。

        在硬體調試過程中,stm32的外部時鐘是否起振,DP83848的25引腳應該能輸出25MHz(MII)或50MHz(RMII)的信号,在RMII模式,TX_CLK應該有25MHz的信号。注意,PHY的複位信号最好不要與stm32的複位信号連接配接到一起,因為當PHY沒有通電使用時,stm32的複位引腳一直會被拉低,導緻stm32不能正常使用。

        在軟體調試過程中,這裡以官方例程來說。首先,stm32的外部時鐘頻率要設定正确;然後,考慮使用哪種模式,相應開啟哪種模式的宏定義;再則,如果使用MCO提供DP83848的時鐘信号,需要注意stm32 的PA8引腳的初始化,如果是使用的外部時鐘源,可以不用考慮MCO信号(但是不用連接配接PHY),在軟體GPIO初始化的時候,要注意,注釋PA8的初始化部分,隻需要注釋該引腳的初始化,引腳狀态初始化不要注釋,因為後面的引腳初始化都會用到。

以上就是我的一些使用感受,有什麼不對的,希望大神指點!