CH32V307以太網(芯片內部10M)


用過WCH的CH579M或者CH563的話,就會發現CH32V307這個自帶的10M以太網代碼編寫與前兩顆芯片流程十分相似。部分區別就在於初始化方面。

 

代碼流程依舊按照

初始化--->等待PHY連接成功--->創建Socket---->while(1)循環處理以太網中斷函數(PHY,Socket等中斷)。

 

初始化的區別在於,因為CH32V307還可以連接外部的PHY芯片實現100Mbps、1000Mbps的數據傳輸,所以在使用芯片內部的10MPHY時,需要進行一些設置。這些在CH32V307的芯片手冊中都有詳細的介紹。代碼的表現如下。

 

 相對於WCH官方的CH579的10M以太網代碼,CH32V307的以太網程序,在使用內部PHY時,需要先配置內部PHY的時鍾,在CH32V307的手冊中,我們可以知道,需要60MHz的時鍾。

 

 WCH官方評估版在使用8MHz晶振的情況下,只需要先兩分頻再15倍頻即可。定時器二是用於產生一個10ms的時基用於協議棧的處理,對應的中斷服務函數,只需要調用以太網協議棧的時鍾中斷服務函數即可。

 

 這個定時器並不是一定需求使用定時器2,CH32V307的其它定時器也是可以用來當作這個時基。只需要定時10ms,並且在中斷服務函數里面調用這個函數即可。

關於網口燈的配置,CH579對於IO是由限制的。在CH32V307上,任意空閑IO都可以當作Link,ACT燈的控制。只需要在接口函數里面做好對應GPIO的初始化,以及控燈程序里面做好對應GPIO的修改即可。但是因為協議棧里面進行了調用,所以切記控燈的函數名不能修改,否則編譯會報錯。

 

最后關注一下WCHNET.h函數,官方程序,默認Socket最多開8個,TCP連接個數為4個等。如果想要實現更多Socket連接,只需要在這個頭文件里面進行設置即可。

 

常見問題:

1. 使用CH32V307EVT里面的網絡例程下載進去,網絡無法跑,匯報硬件的HardFault中斷

解答:這個需要使用ISP工具選擇RAMX 128KB + ROM 192KB,然后選擇一個V307的Hex下載之后,即可正常使用網絡例程。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM