1. 關於w5200
您好,請教一下,我在除錯w5200的過程中,出現一種問題,微控制器可以成功的讀取w5200中暫存器中的資料,但是不能向w5200中寫入資料,資料的格式完全符合官方的資料,模擬spi和硬體spi我都嘗試過,但是效果還是一樣!請教一下這是我**的問題還是其它的問題?
答:關於您的問題,我建議您確認一下,是否確實能夠讀取w5200的暫存器。請按照以下流程確認,並反饋資料予我:
1) 測試w5200的3.3v及1.8v輸入管腳電壓;
2) 查詢資料手冊,有一些暫存器是有預設值的,請選取乙個帶預設值的暫存器讀取一下,並用示波器讀取一下是否與暫存器的預設值相同,以確認我們確實能夠正確讀取暫存器;
3) 如果第2步成功,請嘗試向01暫存器寫入乙個資料,並讀取。若不同:
→ 請依次嘗試寫入不同的值,檢視輸出的值是什麼?是否有規律?
煩請確認後,我們再來判斷一下是**,還是硬體的問題。
2. w5200使用問題
w5200配置為每個接收緩衝區為2k,當接收緩衝區滿時就不能接收新的資料,這時該如何處理。另外能解釋下sn_tx_rd;sn_tx_wr;sn_rx_rd;sn_rx_wr的意思嗎,手冊上講的很不明白。
答:
1)w5200的緩衝區的大小是可以設定的,如果你用不到8個socket且期望通訊速率有所提高,可以將緩衝區重新設定,關閉幾個socket,將部分socket的緩衝區擴大;
2)w5200的緩衝區的資料是需要你及時傳送send命令傳送出去。其寫入資料類似於堆疊,如果滿了的話從首位址進行覆蓋寫入;
3)sn_tx_rd 傳輸讀指標暫存器,顯示傳輸記憶體裡最後乙個傳輸的位址;
sn_tx_wr 傳輸寫指標暫存器,指示當前寫入要傳送的資料的位置;
socket n的命令暫存器執行send命令時,把從當前sn_tx_rd指標位址到sn_tx_wr指標位址的資料傳送出去,並在傳送完成後自動更新sn_tx_rd的值。因此,在傳送完成後,sn_tx_rd和sn_tx_wr的值相同。
4)sn_rx_rd接收讀指標暫存器,提供接收資料的位置資訊;
sn_rx_wr接收寫指標暫存器,提供內部儲存器中寫入接收資料的位置資訊;
3. w5300包處理速度問題
我用的開發板是arm架構,處理器使用s3c2440,網絡卡使用的是w5300晶元。
驅動使用的是你們官網提供的驅動,驅動已經移植成功了。普通速度下ping,tcp/udp收發都沒問題。
現在進行壓力測試,用台式電腦給開發板發網路包,每個包大小為300位元組,問題就出來了。
用socket 0工作在mac_raw模式下,最快只能收大約每毫秒 1.2個包,經換算速度大概為2.3mbps,再快w5300就不工作了。
用socket 1~7,與埠繫結,不工作在mac_raw模式下,則最快大約收取每毫秒 3個包,經換算速度大約為6.87mbps,300(位元組) x 8(bit) x 3000(包/秒鐘) / 1024 / 1024 = 6.87mbps,再快w5300同樣不工作。
不工作時,看各個暫存器的值,結果如下:
mr = 0x8000, sn_mr(n) = 0x0
imr = 0x1, sn_imr(n) = 0xff
ir = 0x0, sn_ir(n) = 0x0
sn_ssr(n) = 0x00 , sn_protor = 0x0
這說明socket n口關閉了。
我想問的是,不論是2.3mbps還是6.87mbps,都沒有達到你們說的使用500位元組的資料報,可以達到40mbps的速度。
這是什麼原因呢。
我看到您是在用pc給w5300發包。不知您控制w5300的機制是什麼樣的?有無讓w5300及時的傳輸資料?
如果您pc一直在發包,而w5300不做傳輸處理的話,容易造成ram溢位。
另外,您使用了mac_raw模式。上層協議是什麼呢?對w5300是如何控制的?
至於w5300的速率也是使用者實際使用測試過的。當然,還與主控晶元的介面及處理速率有關。
不過,您的資料顯然有些不太正常。
感謝關注!
wiznet官方主頁:
wiznet官方部落格:
wiznet企業官方微博:
hadoop hdfs 問題集錦 面試問題集錦
hadoop hdfs問題集錦 一 hadoop為什麼不適合處理大量的小檔案,怎麼解決?原因 1 檔案的元資料 包括檔案被分成了哪些blocks,每個block儲存在哪些伺服器的哪個block塊上 都是儲存在namenode上的記憶體,會對namenode的記憶體造成壓力 2 檔案過多會造成檔案的定...
403問題集錦
如果你是訪問乙個網頁出現這個問題 說明這個網頁是一般人是關閉的 禁止訪問的 你就不要看了 錯誤 403.1 403.1 錯誤是由於 執行 訪問被禁止而造成的,若試圖從目錄中執行 cgi isapi 或其他可執行程式,但該目錄不允許執行程式時便會出現此種錯誤。錯誤 403.2 403.2 錯誤是由於 ...
Matlab問題集錦
茲將以後遇到的與matlab相關的小問題,集中到此博文中。1 在malab中如何顯示特殊字元?試想,如果你想將pi的希臘字母,該怎麼辦呢?如果想要輸入上下標或希臘字母,又該怎麼辦呢?輸下標 輸上標 輸latex公式 text interpreter latex string int 0 x int ...