當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]引言想要快速完成網(wǎng)絡(luò)協(xié)議棧和USB OTG功能,使用ST自家的工具STM32CubMx再好不過的了。如果你還不會使用,別著急下面我會一步一步的用圖片告訴你如何做。軟件平臺:windows、STM32CubMx、keil v5硬件平臺:原子的stm32

引言

想要快速完成網(wǎng)絡(luò)協(xié)議棧和USB OTG功能,使用ST自家的工具STM32CubMx再好不過的了。如果你還不會使用,別著急下面我會一步一步的用圖片告訴你如何做。

軟件平臺:windows、STM32CubMx、keil v5

硬件平臺:原子的stm32f407ZGT6開發(fā)板,

STM32CubMx配置1、以太網(wǎng)管腳的映射配置

第一:閱讀原理圖,使用STM32CubMx完成配置,原理圖這里不說明。直接到STM32CubMx配置。


(1)、打開STM32CubMx軟件,選擇New Project,在彈出的菜單選擇,選擇對應(yīng)的芯片,點(diǎn)擊OK即可。如下圖:


(2) 設(shè)置clock,板子使用的是8MHz的晶振,軟件對應(yīng)的是Peripheral –>RCC。如下圖:



(3)根據(jù)原理圖配置以太網(wǎng),選擇的是RMII接口,注意由于有管腳的復(fù)用,所有選擇RMII后,軟件自動的軟件不一定和原理的對應(yīng)上,我們應(yīng)該按照原理圖來配置管腳!對應(yīng)上的就不用更改,不對應(yīng)上就必須更改。如下圖:

、

原圖上的以太網(wǎng)PHY芯片管腳連接圖是RMII接口,如下圖所示:


相應(yīng)的管腳,軟件對應(yīng)管腳配置


RMII_REF_CLK 、ETH_MDIO、RMII_CRS_DV、ETH_RESET、RMII_TX_EN、RMII_TXD0、RMII_TXD1這些管腳對應(yīng)的位置以及軟件上的配置,如下圖:






經(jīng)過上述配置以太網(wǎng)的管腳基本上映射好了。修改管腳配置,方法:點(diǎn)擊某個關(guān)鍵在彈出的功能菜單選中對應(yīng)的功能即可!

2、USB OTG管腳映射


OTG配置!使用FS做OTG,因?yàn)樵韴D上面用的是FS。


管腳使用默認(rèn)的管腳無需更改。


3、UART1作為打印口映射


管腳使用默認(rèn)的管腳無需更改。


4、第三方庫的配置


(1) 第三方庫的配置主要是文件系統(tǒng)(USB OTG需要)、網(wǎng)絡(luò)協(xié)議棧(以太網(wǎng)需要)、RT OS(選配本次使用OS方便后面的以太網(wǎng)和USB OTG任務(wù)的調(diào)度)。

如下:由于選了OS,而OS的滴答基于Systick來運(yùn)作的,所以我們得另外選擇定時器用來做軟件的tcik的這里選這TIM1。如下圖所示:

配置sys tick,系統(tǒng)記時,單位是ms


第三方庫的選配:

文件系統(tǒng)選擇USB Disk USB硬盤設(shè)備

使能freeOS(嵌入式實(shí)時操作系統(tǒng))、LWIP(TCP/IP協(xié)議棧)



細(xì)節(jié)方面:系統(tǒng)時鐘的配置

系統(tǒng)時鐘的配置,Clock configuration選項(xiàng)卡里設(shè)置,如下配置:使用168MHz的時鐘,USB時鐘必須是48MHz。具體配置如下:


功能的配置 Configuration選項(xiàng)卡里面設(shè)置,為了方便網(wǎng)頁的開發(fā),我這里配置LWIP的httpd功能,GPIO設(shè)置輸出設(shè)置為High。如下圖:


總體細(xì)節(jié)框架如下:



生成代碼框架步驟:

生成代碼框架,菜單project->setting設(shè)置編譯平臺和目錄,Generator code生成代碼框架!



代碼的配置

1、進(jìn)入到軟件的及代碼平臺的編寫!


(1)PHY驅(qū)動的編寫


由于按照上面的步驟生成的代碼基本上是可以用的,但是該代碼基于的是LAN8742A芯片配置的PHY,原理圖上用的是LAN8720,注意PHY芯片基本都上都一樣的主芯片和PHY通信是通過MDIO接口來通信的,這個是標(biāo)準(zhǔn)化的,所以框架程序里面也是這樣子的,這些基本不用改,而且PHY是IEEE802.3中定義的一個標(biāo)準(zhǔn)模塊,PHY芯片的寄存器地址0-31地址具體功能IEEE802.3也是規(guī)范化標(biāo)準(zhǔn)了的,所以移植的時候就很方便了,不同的是PHY復(fù)位時間和PHY芯片地址,關(guān)于地址LAN8720有如下描述:

The PHYAD0 bit is driven high or low togive each PHY a unique address.

PHYAD 0 bit設(shè)置為1或者0以給PHY一個唯一的地址,就是LAN7820A的地址。Thisaddress is latched into aninternal register at the end of a hardware reset (default = 0b). PHY芯片硬件復(fù)位后地址被鎖在內(nèi)部寄存器。

In a multi-PHY application (such as a repeater), the controller isable to manage each PHY via the unique address. 多PHY芯片應(yīng)用場景(例如一個中繼器),控制器能夠通過這個唯一的地址管理每隔PHY芯片。

Each PHY checks eachmanagement data frame for a matching address in the relevant bits. 每隔PHY芯片檢查檢查每個管理數(shù)據(jù)幀的相關(guān)位來匹配這個地址。

When a match is recognized, the PHYresponds to that particular frame. 當(dāng)一個匹配被檢查到,PHY響應(yīng)一個特殊的幀。

The PHY address is also used to seed the scrambler.PHY.地址也用于種子的擾碼

In a multi-PHYapplication, this ensures that the scramblers are out of synchronization and dispersesthe electromagneticradiation across the frequency spectrum.

根據(jù)上面的說法我們這里L(fēng)AN7820的地址應(yīng)該是0,所以找到LAN8742A_PHY_ADDRESS這個定義改為0即可。

位置:Stm32f4xx_hal_conf.h


復(fù)位時間


IP修改


修改自己的IP,注意該框架是默認(rèn)打開DHCP的,DHCP功能,設(shè)備能在網(wǎng)內(nèi)能請求DHCP服器來動態(tài)的配置設(shè)備的IP,我們這里要設(shè)置為固定iP,所以禁用DHCP!如下:

頭文件:lwipopts.h



lwip.c文件修改



固定IP修改,為了方便使用,我這定義一個聯(lián)合體類型來存儲IP地址,如下圖:


修改HAL_ETH_Init函數(shù),添加硬復(fù)位如下:



LWIP測試結(jié)果

經(jīng)過這樣子就修改就可以完成了!只用主機(jī)能ping通,注意打印口映射代碼沒寫出來,這個很簡單,百度一下就有。具體實(shí)驗(yàn)圖如下:



使用正點(diǎn)原子的串口工具,必須用它的。注意要打開一些調(diào)試信息就可以看到了這些打印信息了。



USB OTG 則直接可以用,答應(yīng)USB監(jiān)聽狀態(tài),實(shí)驗(yàn)效果圖如下:

USB測試結(jié)果



插入USB,主機(jī)檢測到了USB連接上了,可以調(diào)用mount然后fopen函數(shù)來正常的讀取文件了,到此基本完成!

總結(jié)

1、完成了LWIP和USB的功能,剩下就是網(wǎng)絡(luò)通信,這些都是應(yīng)用程序了,相對來說簡單。網(wǎng)絡(luò)通信無非就是SOCKET、以及USB就是fopen函數(shù)的調(diào)用write和read函數(shù)等。

2、關(guān)于打印口看到了httpd_init,那是因?yàn)槲姨砑恿司W(wǎng)頁設(shè)計,通過網(wǎng)頁可以修改IP等。

3、使用STM的STM32CubMx軟件快速開發(fā)出你想要的框架,底層配置大多數(shù)可以不用自己的手工的去計算,比如時鐘,如果通過自己的計算來給各個總線來分配時鐘源那會相當(dāng)麻煩,從做STM32F103的時候就深有體會。如果還不會這個軟件的,建議還是得學(xué)會,因?yàn)樗梢詭臀覀兒艽蟮拿ΑW鳛閺氖耂TM32和linux開發(fā)的我來說,省去一大部分的時間了。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉