关于W5500/LAN8720与STM32以及与千兆交换机芯片通信的硬件、软件调试不通的问题
這次是滿滿的干貨,從硬件到軟件。
前提是,硬件電路基本是按照官方推薦的來,軟件也是官方的demo移植來的。
1、首先查看晶體是否起振。示波器應(yīng)該可以看到一個(gè)直流偏置是1.5V左右、交流振幅大概在0.5V以內(nèi)的25MHz的振蕩信號(hào),波形不必太完美的正弦波即可。
2、檢查單片機(jī)與W5500之間的引腳是否是與程序中初始化的一致,包括使用的是哪個(gè)SPI口。SPI口的三個(gè)引腳的模式應(yīng)該是AF_SPIx。推薦使用SPI1,主頻更高一些。SPI線較長(zhǎng)的話,速率不推薦太高,單片機(jī)GPIO引腳的速率不宜設(shè)置為100MHz(容易導(dǎo)致SPI通信失敗,這是血的教訓(xùn)),設(shè)置為50MHz即可。
3、W5500與千兆以太網(wǎng)芯片之間能不能連接?如何連?
? ? 答案是肯定的!肯定能連。一般千兆交換機(jī)芯片都支持引腳電平以及收發(fā)口自動(dòng)翻轉(zhuǎn)功能,即MDIX。使用千兆交換機(jī)的前兩對(duì)兒引腳與W5500的TXP/N與RXP/N通信。推薦之間使用網(wǎng)絡(luò)變壓器,其實(shí)直連也行,但是得判斷是否是同類型的(同是電壓驅(qū)動(dòng)還是電流驅(qū)動(dòng),如果不一致,兩側(cè)的電容隔離和電阻上拉需要根據(jù)原來接以太網(wǎng)口時(shí)候的匹配電路進(jìn)行設(shè)計(jì)),但是穩(wěn)妥起見,使用一個(gè)網(wǎng)絡(luò)變壓器即可,無需使用兩個(gè)網(wǎng)絡(luò)變壓器。
4、使用網(wǎng)絡(luò)調(diào)試助手接收UDP數(shù)據(jù)時(shí),無法收到數(shù)據(jù),除非先在電腦端發(fā)送一次才能行。
這種情況是因?yàn)殡娔X開啟了防火墻。需要將公共網(wǎng)絡(luò)的防火墻關(guān)掉,結(jié)果是立竿見影啊!!
5、調(diào)試千兆以太網(wǎng)芯片時(shí),會(huì)出現(xiàn)不啟動(dòng)的情況,排除原理性問題,看看是不是因?yàn)橛须娙蓦娮韬稿e(cuò)了。筆者就是因?yàn)橐粋€(gè)2.49K的電阻錯(cuò)焊成電容,導(dǎo)致MDIREF的電壓錯(cuò)誤,千兆以太網(wǎng)芯片不動(dòng)作,害人啊!搞了好幾天,都TM懷疑人生了。
目前,一切工作良好!連接公網(wǎng)也不怕,數(shù)據(jù)通信杠杠的!
6、當(dāng)然,除了使用W5500之外,LNA8720也沒問題,就是需要移植LWIP內(nèi)核,問題也不大。LWIP內(nèi)核進(jìn)行UDP通信時(shí),為了和多個(gè)UDP的socket字通信,不能綁定目標(biāo)地址,否則無法與多個(gè)套接字通信!!
滿滿的干貨,拿走不謝!如果幫到你了,麻煩回復(fù)一下,支持一下筆者。
總結(jié)
以上是生活随笔為你收集整理的关于W5500/LAN8720与STM32以及与千兆交换机芯片通信的硬件、软件调试不通的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中测试类的使用(用于更加便捷的测
- 下一篇: MySQL基础(学习笔记)