LWIP教程1——Cubemx 配置無操作系統下的LWIP初始化

LWIP教程1——Cubemx 配置無操作系統下的LWIP初始化

1. 環境

1.1 軟件環境:

  • packages版本(STM32F4 1.21)
  • cubemx版本(version4.27.0 && STM32Cube v1.0)
  • MDK版本(KEIL5 V5.23.0.0)

packages版本
cubemx版本
KEIL5版本

1.2 硬件環境

  • 正點原子探索者開發板(STM32F407ZGT6)
  • 網絡接口原理圖部分

網絡接口原理圖

網絡接口原理圖

網絡接口原理圖

網絡接口原理圖

網絡接口原理圖

注意:LAN8720A 可以通過 PHYAD0 引腳來配置,該引腳與 RXER 引腳複用,芯片內部自帶下拉電阻,當硬復位結束後, LAN8720A 會讀取該引腳電平,作爲器件的 SMI 地址,接下拉電阻時(浮空也可以,因爲芯片內部自帶了下拉電阻),設置 SMI 地址爲 0,當外接上拉電阻後,可以設置爲 1。本硬件RXER引腳浮空,其PHY芯片地址爲0。

2. cubemx配置主要內容

2.1 RCC配置

RCC配置

2.2 SYS配置

SYS配置

2.3 USART1配置

USART1配置

2.4 ETH配置

ETH配置

ETH配置

ETH配置

ETH配置

ETH參數設置需要根據芯片手冊來確定部分數據

ETH參數
ETH參數

  • PHY芯片的配置需要注意以下幾項:
  1. ETH配置中的高級參數配置
  • PHY參數user PHY,CUBEMX默認選擇的是LAN8742A_PHY_ADDRESS
  • PHY參數PHY Address Value,設置爲0,這個值需要根據硬件連接來確定(LAN8720A 可以通過 PHYAD0 引腳來配置,該引腳與 RXER 引腳複用,芯片內部自帶下拉電阻,當硬復位結束後, LAN8720A 會讀取該引腳電平,作爲器件的 SMI 地址,接下拉電阻時(浮空也可以,因爲芯片內部自帶了下拉電阻),設置 SMI 地址爲 0,當外接上拉電阻後,可以設置爲 1。本硬件RXER引腳浮空,其PHY芯片地址爲0)。
  • PHY參數PHY name,是一個標識符,可以隨便設置,我這裏設置的是LAN8720A
  1. 高級參數配置的最後三項參數設置需要根據芯片手冊來設定
  • 參數PHY special control/status register Offset,根據芯片手冊看到是十進制31。
  • 參數PHY Speed mask,根據芯片手冊看到是[bit3:bit2]表示速度掩碼。
  • 參數PHY Duplex mask,根據芯片手冊看到是[bit4]表示工作方式是全雙工還是半雙工掩碼。

2.5 LWIP配置

LWIP使能

LWIP使能

LWIP參數配置

LWIP配置

LWIP配置

2.6 時鐘配置

時鐘配置

3. 代碼完善

3.1 添加對PHY硬件復位的代碼

PHY硬件復位的代碼

3.2 主函數添加LWIP線程函數

PHY硬件復位的代碼

4. 實驗效果

4.1 路由器端查看

是否存在已經在工程中設置ip地址爲192.168.0.100,MAC地址爲00:80:E1:00:00:00的設備。

路由端
可以看到IP地址和MAC地址符合我們代碼中設置的。

4.2 ping開發板

ping設置的IP地址192.168.0.100看能否ping通

ping

可以看到IP地址可以ping通,延時不超過1ms。

公衆號二維碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章