chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

國產(chǎn)100M以太網(wǎng)PHY:沁恒CH182H2性能測試應(yīng)用看這篇就夠了

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 2026-02-14 20:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、前言

二、開發(fā)板CH32V307V-EVT-R3介紹

三、CH182H2介紹

四、性能測試

五、總結(jié)建議

六、基于MounRiver_Studio開發(fā)(保姆級操作)

一、前言

本文分享一款100M以太網(wǎng)PHY芯片,CH182H2。并分享基于官方的開發(fā)板CH32V307V-EVT-R3來評估下這款芯片的應(yīng)用,以及性能測試。具體的性能,參數(shù),特點(diǎn)等可以參考數(shù)據(jù)手冊,這里主要描述一些個人覺得比較有意思的點(diǎn)。

本文會著重描述該芯片的基本應(yīng)用,包括原理圖分析,官方開發(fā)板Demo測試,RAW發(fā)送,TCP收發(fā)性能測試等,如果是初次使用該芯片的朋友,可以參考本文。

二、開發(fā)板CH32V307V-EVT-R3介紹

官方的CH32V307V-EVT-R3開發(fā)板,可以用于評估CH182H2芯片。

wKgZPGmNsTGARcLsAAHAGiEvzYQ340.png

資料下載地址:

https://www.wch.cn/downloads/CH32V307EVT_ZIP.html

開發(fā)板的主要接口資源如下:

wKgZO2mNsTKAO9raAAU2uGLT-JA808.png

1.100M網(wǎng)口

2.MCU引出I/O

3.SWDIO調(diào)試口

4.CH32V307VCT6

5.USB全速接口

6.USB高速接口(內(nèi)置PHY)

7.電源開關(guān)

8.復(fù)位按鈕

9.下載按鈕

個人覺得比較好的地方是P6把RMII接口引出來了,方便邏輯分析儀直接測量RMII接口,用于測試分析,甚至用于學(xué)習(xí)RMII接口都是不錯的。

三、CH182H2介紹

開發(fā)板是用于評估的載體,本文的重點(diǎn)是CH182H2這顆PHY芯片,所以開發(fā)板大致了解,熟悉下原理圖,知道有哪些接口,如何使用即可。重點(diǎn)來看CH182H2這顆芯片。該芯片IO口支持3.3/2.5/1.8V,適配多種電壓的主控,還兼容RTL8102F??词謨悦枋?,有一款CH182D內(nèi)置唯一MAC地址,體積小巧,QFN封裝才3*3mm。

可以從以下地址下載該芯片規(guī)格書

https://www.wch.cn/downloads/CH182DS1_PDF.html

這里順帶提一下,WCH的以太網(wǎng)產(chǎn)品還是挺全的??此麄児倬W(wǎng)介紹,除了以太網(wǎng)PHY,還提供控制器芯片CH390、協(xié)議棧芯片CH394/CH395和轉(zhuǎn)接芯片CH9121等。CH390D尺寸3*3mm,算是目前市面上體積最小的百兆以太網(wǎng)MAC PHY芯片了,內(nèi)置PHY,支持IPv4 TCP/UDP和IPv6 TCP/UDP校驗(yàn)和的生成和檢查。帶全球唯一MAC地址。

3.1原理圖解析

根據(jù)開發(fā)板的原理圖,重點(diǎn)看下CH182H2的應(yīng)用部分。

MCU最小系統(tǒng)部分:

wKgZPGmNsTOAIKUJAAXjfKq6i-U850.png

PHY部分:

wKgZO2mNsTSAcCrdAAGmUINkRVI979.png

RMII接口部分,引出IO可使用邏輯分析抓信號:

wKgZPGmNsTWAPjDiAAFvnLvMQTw803.png

以太網(wǎng)接口部分:

wKgZO2mNsTWAboXVAAFi1-ndSi8958.png

PHY電源和復(fù)位部分:

wKgZPGmNsTaAZH1JAACwScfXTsQ621.png

從以上原理圖可以看出PHY的外圍電路是很簡單的,可以降低BOM成本。

原理圖分為以下部分來看:

1.電源

VDDIO: IO電源輸入,對地接0.1uF電容。支持3.3V、2.5V或1.8V。

AVDD33: 3.3V主電源輸入,對地接0.1uF并聯(lián)10uF。

AVDDK:對地接1uF電容,供內(nèi)置LDO用。實(shí)測應(yīng)該為1.2V左右,最大1.5V。

DVDDK:對地接0.1uF電容,供內(nèi)置LDO解耦用。實(shí)測應(yīng)該為1.2V,最大1.5V。

2.MDIO

CH182系列MDIO、MDC均內(nèi)置上拉電阻,可省外部上拉,簡化電路。

3.復(fù)位

RSTB使用阻容復(fù)位即可,典型值4.7K,0.1uF。低電平有效。

4.LED

LED引腳的一個功能是配置PHY地址。

LED1 LED0組合決定PA1 PA0 PHY的地址,默認(rèn)為01即LED0內(nèi)部上拉,LED1內(nèi)部下拉。

開發(fā)板中使用了默認(rèn)配置,所以無需額外的4.7k的上下拉。

LED引腳本身還作為LED信號控制,用于表示10M還是100M速度,以及是否在通訊活動的狀態(tài),取決于寄存器配置LED_SEL不同,LED1和LED0的行為不一樣,如下,默認(rèn)LED_SEL為0b11

wKgZO2mNsTaAeZn8AAFYJPXS12s818.png

LED0還可以作為PMEB喚醒事件輸出,低有效。

5.MDI

MDI_TX_P/N MDI_RX_P/N接網(wǎng)絡(luò)變壓器的TD+/- RD+/-即可,網(wǎng)絡(luò)變壓器中心抽頭0.1uF對地即可,無需接電源。

6.中斷

INTB引腳通過4.7k上拉到VDDIO。

需要在RMII模式下,作為中斷輸出,低有效。

7.晶振

XI,XO外接25M晶體,或者輸入25M/50M時鐘。PHY內(nèi)部集成了負(fù)載電容為12pF的晶體所需的兩個振蕩電容,所以對于負(fù)載電容為12pF的晶體無需外接電容。

如果晶體負(fù)載電容大于12pF,則還需根據(jù)實(shí)際情況外接負(fù)載電容(在內(nèi)部電容基礎(chǔ)上再增加)。

8.RMII接口選擇

RXDV引腳默認(rèn)為內(nèi)部下拉此時配置為MII接口,如果需要配置為RMII接口則RXDV需要外部接4.7k上拉到VDDIO。

9.TXC時鐘模式

RMII模式下,RXD0引腳默認(rèn)為下拉TXC輸出50MHz時鐘,

如果外部4.7KΩ上拉到VDDIO,則TXC輸入50MHz時鐘。

開發(fā)板中無外部上下拉,使用默認(rèn)狀態(tài)TXC輸出時鐘。

頁7寄存器16也可配置RMII的TXC是輸出還是輸入時鐘。

10.[R]MII接口

RXDV高有效表示有接收數(shù)據(jù)。同時用于配置RMII接口還是MII接口。

RXD0~3 MAC接收數(shù)據(jù)

RXC PHY輸出時鐘100M時25M,10M時2.5M

TXD0~3 MAC發(fā)送數(shù)據(jù)

TXCMII PHY輸出時鐘,RMII下PHY輸出或者輸入時鐘(RXD0決定)

TXEN發(fā)送使能,高有效。

CRS_DV高有效,載波或者接收數(shù)據(jù)不為空閑時高。

COL 高有效,檢測到碰撞為高

RXER 高有效,檢測到錯誤為高

3.2寄存器

wKgZPGmNsTeAYPwEAAMqIIIid_0871.png

0號寄存器的速度和自動協(xié)商,雙工模式是需要關(guān)注的,對于不能通過引腳配置這些參數(shù)的型號需要配置該寄存器,對于能通過引腳配置這些參數(shù)的型號則可以不配置該寄存器,CH182H2需要配置該寄存器。默認(rèn)配置是100M,自動協(xié)商使能,全雙工,所以默認(rèn)配置即可滿足一般使用。

wKgZO2mNsTiAR_9qAASeXgihFic305.pngwKgZPGmNsTmAbQHRAAJejPn_tF4749.png

寄存器都是標(biāo)準(zhǔn)的。寄存器31用于頁切換,基礎(chǔ)寄存器是標(biāo)準(zhǔn)的,擴(kuò)展寄存器由廠家自定義功能,詳細(xì)內(nèi)容需要咨詢廠家。

3.3特點(diǎn)

詳細(xì)參數(shù),特點(diǎn)等可以參考數(shù)據(jù)手冊,個人覺得以下特點(diǎn)值得特別提出

1.25M晶體(如果負(fù)載電容是12pF)無需外部電容,內(nèi)置了負(fù)載電容為12pF的晶體對應(yīng)的電容。

2.IO可配不同電壓,支持3.3V、2.5V或1.8V。

3.P6引出了RMII接口,方便使用邏輯分析儀測試。

4.CH182D還內(nèi)置唯一MAC地址。

5.內(nèi)置以太網(wǎng)50Ω阻抗匹配電阻,外部不要再接49.9Ω或50Ω電阻,等效于電壓驅(qū)動。

6.外圍器件簡單,BOM成本低。

3.4建議

開發(fā)板中建議CH182H2的VDDIO不要直連VCC182,而是通過跳線可外部供指定的電壓或者使用板載默認(rèn)的3.3V,方便評估VDDIO使用不同電壓(最好是板載就可以選擇不同電壓,作為評估版要能通過配置就能評估所有功能)。

四、性能測試

這里來基于iperf進(jìn)行TCP的收發(fā)性能測試,先來測試RAW發(fā)送可以驗(yàn)證PHY的速率,然后再測試TCP的收發(fā)性能。 實(shí)測結(jié)果先睹為快如下,詳見后面的測試介紹。

1.Raw TX:93Mbps

2.TCP TX: 80Mbps

3. TCP RX: 70Mbps

4.1 Raw發(fā)送速度測試

基于CH32V307V-EVT-R3CH32V307EVTEVTEXAMETHMAC_RAW這個工程進(jìn)行測試

注釋掉接收處理與打印,只關(guān)注發(fā)送

void WCHNET_MainTask(void)
{    
  //RecDataPolling();    
  WCHNET_QueryPhySta();     /* Query external PHY status */    
  WCHNET_LinkProcessing();   /* process Link stage task */
}

發(fā)送代碼

  static uint32_t sndlen = 0;
    static uint32_t tick1=0;
    static uint32_t tick2=0;
    extern uint32_t volatile LocalTime;
    while(1)
    {
        WCHNET_MainTask();
        if(LinkSta)
        {
            if(ETH_SUCCESS == MACRAW_Tx(ARPPackage, sizeof(ARPPackage))){
                ///if(++PktCnt % 100 == 0)
                ///    printf("PktCnt:%drn",PktCnt);
                ///Delay_Ms(100);
                sndlen += sizeof(ARPPackage);
                if(tick1 == 0){
                    tick1 = LocalTime;
                    tick2 = LocalTime;
                }else{
                    tick2 = LocalTime;
                }
                if (tick2 - tick1 >= 5000){
                    uint32_t speed;
                    speed=((uint64_t)sndlen/125)/(tick2-tick1); 
                    printf("%d Mbps!rn", speed);
                    tick1 = tick2;
                sndlen = 0;
                }
            }
        }
    }
}

可以看到幾乎可以跑滿100Mbps。

wKgZO2mNsTmAfP_5AAIjuO9UhWU154.png

4.2接收測試

作為servert接收

所以使用TCPServer的Demo

接收數(shù)據(jù)流如下:

WCHNET_HandleGlobalInt->WCHNET_HandleSockInt->WCHNET_DataLoopback

我們在WCHNET_DataLoopback記錄接收指定長度數(shù)據(jù)后的時間,用于接收速度測試,

wKgZPGmNsTqAIn9ZAAF9IDKxEn4067.png

實(shí)測,接收速度最大可達(dá)70Mbps左右。

wKgZO2mNsTuAe2u_AAOxI3FtD1M976.png

關(guān)鍵代碼如下

extern uint32_t volatile LocalTime;
void WCHNET_DataLoopback(u8 id)
{
    u32 len;
    u32 endAddr = SocketInf[id].RecvStartPoint + SocketInf[id].RecvBufLen;       //Receive buffer end address
    if ((SocketInf[id].RecvReadPoint + SocketInf[id].RecvRemLen) > endAddr) {    //Calculate the length of the received data
        len = endAddr - SocketInf[id].RecvReadPoint;
    }
    else {
        len = SocketInf[id].RecvRemLen;
    }
    static uint32_t recvlen = 0;
    static uint32_t tick1=0;
    static uint32_t tick2=0;
    recvlen += len;
    if(tick1 == 0){
        tick1 = LocalTime;
        tick2 = LocalTime;
    }else{
        tick2 = LocalTime;
    }
    
    if (tick2 - tick1 >= 5000){
        uint32_t speed;
        speed=((uint64_t)recvlen/125)/(tick2-tick1); 
        printf("%d Mbps!rn", speed);
        tick1 = tick2;
        recvlen = 0;
    }
    WCHNET_SocketRecv(id, NULL, &len);  
}

4.3發(fā)送測試

作為client發(fā)送

所以使用TCPClient的Demo

u8DESIP[4] = {192,168,1,100}; //destination IP address

改為電腦IP

u8DESIP[4] = {192,168,1,9};

端口對應(yīng)

u16desport=1000; //destination portu16srcport=1000;                     //source port

增加變量,檢測到鏈接或者斷開時,設(shè)置對應(yīng)標(biāo)志,標(biāo)志是鏈接狀態(tài)時才發(fā)送

  //if (intstat & SINT_STAT_RECV)                               //receive data
    {
        WCHNET_DataLoopback(socketid);                          //Data loopback
    }
    volatileintconnect_flag=0;
 
    if (intstat&SINT_STAT_CONNECT)                            //connect successfully
    {
        connect_flag=1;
 
    if (intstat&SINT_STAT_DISCONNECT)                         //disconnect
    {
        connect_flag=0;
 
    if (intstat&SINT_STAT_TIM_OUT)                            //timeout disconnect
    {
        connect_flag=0;

接收處理這里不再發(fā)送避免干擾,單獨(dú)添加發(fā)送測試函數(shù)


void WCHNET_DataLoopback(u8 id)
{
    u8 i;
    u32 len;
    u32 endAddr=SocketInf[id].RecvStartPoint+SocketInf[id].RecvBufLen;       //Receive buffer end address
 
    if ((SocketInf[id].RecvReadPoint+SocketInf[id].RecvRemLen) >endAddr) {    //Calculate the length of the received data
        len=endAddr-SocketInf[id].RecvReadPoint;
    }
    else {
        len=SocketInf[id].RecvRemLen;
    }
    //i = WCHNET_SocketSend(id, (u8 *) SocketInf[id].RecvReadPoint, &len);         //send data
    //if (i == WCHNET_ERR_SUCCESS) {
        WCHNET_SocketRecv(id, NULL, &len);                                       //Clear sent data
    //}

初始發(fā)送數(shù)據(jù)

  for (i=0; i

發(fā)送處理

extern uint32_t volatile LocalTime;
 
static voidsend_test(void){
    if(connect_flag){
        static uint32_t sndlen=0;
        static uint32_t tick1=0;
        static uint32_t tick2=0;
        u8 id=0;
        uint32_t len=RECE_BUF_LEN;
        u8 res=WCHNET_SocketSend(id, (u8*) SocketRecvBuf[id], &len); 
        if (res!=WCHNET_ERR_SUCCESS) {
            //printf("snd err:%drn",res);
            sndlen+=0;
        }else{
            sndlen+=len;
        }
        if(tick1==0){
            tick1=LocalTime;
            tick2=LocalTime;
        }else{
            tick2=LocalTime;
        }
        if (tick2-tick1>=5000){
            uint32_tspeed;
            speed=((uint64_t)sndlen/125)/(tick2-tick1); 
            printf("%d Mbps!rn", speed);
            tick1=tick2;
           sndlen=0;
        }
    }
}
 
    while(1)
    {
        /*Ethernet library main task function,
         * which needs to be called cyclically*/
        WCHNET_MainTask();
        /*Query the Ethernet global interrupt,
         * if there is an interrupt, call the global interrupt handler*/
        if(WCHNET_QueryGlobalInt())
        {
            WCHNET_HandleGlobalInt();
        }
 
        /* 發(fā)送測試 */
        send_test();
    }

實(shí)測如下

wKgZPGmNsTyAVPK3AAA6K6dYTEE322.pngwKgZO2mNsTyAHb73AANu7dlDpJY303.png

發(fā)送速度為80Mbps左右,會有一些抖動,最大可達(dá)90Mbps,可以看到效率是非常不錯的,支持硬件校驗(yàn)是一個很大的優(yōu)勢。

4.4速度優(yōu)化建議

1.提高M(jìn)CU主頻

Usersystem_ch32v30x.c中改為144M

#defineSYSCLK_FREQ_144MHz_HSE 144000000

2.增加DMA描述符數(shù)/緩存區(qū)個數(shù)

根據(jù)應(yīng)用場景看是大量收還是大量發(fā),調(diào)大對應(yīng)的方向的描述符數(shù)

比如發(fā)送多的場景可以加大ETH_TXBUFNB

Usernet_config.h中


#define ETH_TXBUFNB 16    /* The number of descriptors sent by the MAC  */
#define ETH_RXBUFNB 2    /* Number of MAC received descriptors  */

3.增加協(xié)議棧緩存區(qū)大小

Usernet_config.h中

根據(jù)應(yīng)用場景看是大量收還是大量發(fā),調(diào)大對應(yīng)的方向的緩存大小。

比如發(fā)送多的場景可以加大WCHNET_NUM_TCP_SEG

#define RECE_BUF_LEN (WCHNET_TCP_MSS*2)   /* socket receive buffer size */
#define WCHNET_NUM_PBUF WCHNET_NUM_POOL_BUF   /* Number of PBUF structures */
#define WCHNET_NUM_TCP_SEG (WCHNET_NUM_TCP*8)   /* The number of TCP segments used to send */

4.打開硬件校驗(yàn)

這個是最能明顯提升效率的,因?yàn)樾r?yàn)計(jì)算很占CPU帶寬。

Usernet_config.h中

#defineHARDWARE_CHECKSUM_CONFIG   1  /* Hardware checksum checking and insertion configuration, 1: enable, 0: disable */

5.數(shù)據(jù)量盡量按最大包長填充,即應(yīng)用上層協(xié)議的設(shè)計(jì)盡量不要使用短包。

五、總結(jié)建議

總的來說CH182H2的優(yōu)點(diǎn)是很明顯的,正如3.3的介紹,最主要的就是外圍電路可以很簡單,降低BOM成本,另外也有不同小封裝可選,適應(yīng)于尺寸限制等場景,同時也可以降低成本,所以選擇100M以太網(wǎng)PHY芯片的話可以考慮下CH182系列。

選用CH32V30x等主控,基于MountRiverStudio開發(fā),也是很方便的,測試跑RAW數(shù)據(jù)發(fā)送幾乎能跑滿硬件帶寬,跑TCP效率也非常不錯,發(fā)送可達(dá)80Mbps多。MountRiverStudio使用起來個人感覺還是非常絲滑方便的,界面也美觀。

另外官方Demo提供了協(xié)議棧庫可以直接使用減少開發(fā)工作量,而對于想自己移植第三方協(xié)議棧庫或者直接面向底層編程的,可以參考下MAC Raw例程,可以基于此在上面移植以太網(wǎng)協(xié)議棧。RMII驅(qū)動層也是可以直接使用的。

注意ISP下載開發(fā)板BOOT0不要短接(默認(rèn)是短接的)。

注意使用仿真器需要先切換到RV模式。

六、基于MounRiver_Studio開發(fā)(保姆級操作)

前面介紹了CH182H2這顆芯片和其對應(yīng)的評估版,并進(jìn)行了性能測試,對于只是想了解該芯片的可以參考,如果進(jìn)一步想進(jìn)行應(yīng)用開發(fā),則可參考本章內(nèi)容。本章按照保姆級別操作記錄,介紹基于官方的Demo開發(fā)實(shí)踐。

6.1安裝MounRiverStudio

從以下地址下載MounRiverStudio:

https://www.mounriver.com/download

wKgZPGmNsT2AIlOQAADEUll3BpE457.png

6.2導(dǎo)入工程

下載開發(fā)板資料包CH32V307EVT.ZIP,解壓

https://www.wch.cn/downloads/CH32V307EVT_ZIP.html

雙擊CH32V307EVTEVTEXAMETHTCPServerTCPServer.wvproj打開tcpserver的例程。

6.2.1配置Netlib

我們這里要使用RMII,100M接口,所以要修改使用的驅(qū)動文件

右鍵eth_driver_RMII.c,Include/Exclude From Build添加到編譯

wKgZO2mNsT6ANMkqAADx4w50zjk707.png

同樣的方法將eth_driver_10M.c排除編譯

即編譯以下幾個文件

wKgZPGmNsT-AfxqeAAD4X6X2BIk325.png

6.2.2配置浮點(diǎn)庫

右鍵點(diǎn)擊TCPServer->Properties

配置使能硬件單精度浮點(diǎn)

wKgZO2mNsT-AUjMKAAFU6evXB1k779.png

再配置鏈接對應(yīng)的庫文件(可省略)

wKgZPGmNsUCAKBNPAAEp5xiqi1Q634.png

配置完點(diǎn)擊Apply

兩個a文件只保留一個即可,這里使用float.a

也可以使用上述方法,將這個庫排除編譯。

wKgZO2mNsUGAZ0K1AAEHQpu9y3Y164.png

按delete按鍵選擇remove

wKgZPGmNsUKAcp1iAAG_a8OfKD4628.png

6.2.3確認(rèn)芯片型號

右鍵點(diǎn)擊TCPServer->Properties,選擇對應(yīng)的MCU型號

wKgZO2mNsUKAF7N3AAGTR8pRsrA696.png

配置完點(diǎn)擊Apply

6.3編譯

菜單欄點(diǎn)擊Project->build Project

編譯完成

wKgZPGmNsUOAMj4sAAGSXt9Lh6g344.png

6.3.1編譯注意事項(xiàng)

如果開啟了微軟電腦管家服務(wù),MRS2檢測到該服務(wù)可能導(dǎo)致編譯變慢會彈窗提示如下。用戶可以按彈窗提示,關(guān)閉該服務(wù),編譯速度就會恢復(fù)正常。

wKgZO2mNsUSAajqYAAXxD513D3U293.png

按照如下處理

右鍵點(diǎn)擊左下角WIN圖標(biāo)->計(jì)算機(jī)管理->服務(wù)和應(yīng)用程序->服務(wù)

找到Microsoft PC Manager Service,右鍵點(diǎn)擊->屬性

啟動類型選擇禁用,然后點(diǎn)擊停止

wKgZO2mNsUWAapCPAARfQ_R6uZU331.png

6.4配置仿真

參考WCH-LinkUserManual

https://www.wch.cn/downloads/WCH-LinkUserManual_PDF.html

接入仿真器后設(shè)備管理器下外部接口目錄下會看到對應(yīng)的設(shè)備。

MounRiver Studio菜單欄Tools->WCH-LinkUtility

獲取當(dāng)前模式

wKgZPGmNsUWAMm0WAAe9thhqS-k807.png

設(shè)置為WCH-LinkRV

wKgZO2mNsUaAVXF2AAfHlEJpebQ445.png

右鍵點(diǎn)擊TCPServer->Properties

設(shè)置仿真器和參數(shù)如下,一般默認(rèn)即可

其中SVD下是指定寄存器描述文件,這樣就可以查看各個外設(shè)寄存器

wKgZO2mNsUeAQKY1AAGjXJ2g-gU178.pngwKgZPGmNsUiAZ7UuAAF3N8p7EKM590.pngwKgZO2mNsUmAOgkRAAE5hbwI3y8113.png

然后點(diǎn)擊甲殼蟲圖標(biāo)進(jìn)入仿真環(huán)境并下載程序

wKgZPGmNsUmAPu11AAIW3usM3n4442.pngwKgZO2mNsUqAbu_mAARzZkenfr8843.png

可以查看外設(shè)寄存器。

wKgZPGmNsUuAGY-EAAJuxrTxEvI532.png

其他仿真操作,不同IDE都大同小異不再贅述。

新版本MounRiver基于VSCODE框架深度定制,明顯比之前基于eclipse的更絲滑,輕量,美觀。同時兼容了之前版本的操作習(xí)慣,方便熟悉MRS1的用戶快速上手,另外對于熟悉VSCODE的用戶也會覺得很熟悉可以直接上手。

6.5 ISP下載程序

手里沒有WCH-LInk可以使用ISP下載

注意開發(fā)板上BOOT0默認(rèn)跳線到了GND要斷開。

BOOT0接VCC,BOOT1接GND是進(jìn)下載模式,

BOOT0通過下載按鍵按下接VCC

wKgZO2mNsUyAb8yvAAEyR5PscpA342.pngwKgZPGmNsUyABJHuAAOllK6L3gM024.png

以下地址下載WCHISPTool_Setup.exe

https://www.wch.cn/downloads/WCHISPTool_Setup_exe.html

雙擊WCHISPTool_Setup.exe安裝

wKgZO2mNsU2AUCijAAbhs6OSBdg294.pngwKgZPGmNsU6AMcG_AAKbh39IEUQ349.pngwKgZO2mNsU-AHNeVAAIeLESELk4058.pngwKgZPGmNsVCAH-PWAAJ5fMNZSqQ942.pngwKgZO2mNsVCAZ3QtAAYusn7kbe4336.pngwKgZPGmNsVGAFqxaAADwZevgAek975.png

選擇MCU

wKgZO2mNsVKAe8KJAAPFnV7_teI191.png

為了方便可以先不使能讀保護(hù),否則使能了之后下次下載前需要先解除讀保護(hù)

wKgZPGmNsVOAOuraAAIvjeTOZWc027.png

USB接P5,按下下載按鍵,按下復(fù)位按鍵

識別到USB設(shè)備

wKgZO2mNsVOAAV-JAAJi-9JsMuU447.png

選擇HEX文件

CH32V307EVTEVTEXAMETHTCPServerobjTCPServer.hex

wKgZPGmNsVSAKXWyAAO7qwncdw8604.png

點(diǎn)擊下載

wKgZO2mNsVWAIjXQAAR-br-jRlw721.png

6.6運(yùn)行

接上串口線,參數(shù)為115200-8-n-1

wKgZPGmNsVaAWhN5AANt60n6l5A121.png

按鍵RST重啟

串口打印如下

wKgZO2mNsVeAOOiJAAKsqS9SU1k211.png

Usermain.c中看到

開發(fā)板IP為

u8 IPAddr[4] = {192, 168, 1, 10}; //IP address

所以將電腦IP設(shè)置為192, 168, 1,9

打開網(wǎng)絡(luò)調(diào)試助手

作為客戶端,連接開發(fā)板的服務(wù)端192.168.1.10,端口1000

u16 srcport = 1000; //source port

wKgZPGmNsVeAAGiDAALCcskvX_Q865.png

客戶端發(fā)送數(shù)據(jù),開發(fā)板原樣返回

開發(fā)板打印

wKgZO2mNsViALLVNAADBcS-jlWM535.png

Intstat這個打印在如下位置添加的

void WCHNET_HandleGlobalInt(void){    
  u8 intstat;    
  u16 i;    
  u8 socketint;
  intstat=WCHNET_GetGlobalInt();  //get global interrupt flag    
  printf("intstat:%xrn",intstat);

相關(guān)的處理邏輯位于

WCHNET_HandleSockInt

收到數(shù)據(jù)后原樣返回


void WCHNET_HandleSockInt(u8 socketid, u8 intstat)
{
    u8i;
    if (intstat&SINT_STAT_RECV)      //receive data
    {
        WCHNET_DataLoopback(socketid);                            //Data loopback
    }

連接時打印信息

   if (intstat&SINT_STAT_CONNECT)                              //connect successfully
    {
#if KEEPALIVE_ENABLE
        WCHNET_SocketSetKeepLive(socketid, ENABLE);
#endif
        WCHNET_ModifyRecvBuf(socketid, (u32) SocketRecvBuf[socketid],
        RECE_BUF_LEN);
        for (i=0; i

其他邏輯,斷開,超時等處理

    if (intstat&SINT_STAT_DISCONNECT)                           //disconnect
    {
        for (i=0; i
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    41

    文章

    5984

    瀏覽量

    180560
  • PHY
    PHY
    +關(guān)注

    關(guān)注

    2

    文章

    334

    瀏覽量

    54000
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6262

    瀏覽量

    117437
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    MII/RMII接口100M以太網(wǎng)PHY芯片 SR8201F

    SR8201F介紹100M以太網(wǎng)PHY SR8201G的升級版SR8201G是100M以太網(wǎng)PHY
    發(fā)表于 06-29 15:55

    供應(yīng)國產(chǎn)網(wǎng)絡(luò)芯片SR9900 (USB2.0接口100M低功耗以太網(wǎng)芯片)

    供應(yīng)國產(chǎn)網(wǎng)絡(luò)芯片SR9900 (USB2.0接口100M低功耗以太網(wǎng)芯片)近幾年,隨著三網(wǎng)融合政策的推進(jìn),光纖入戶已經(jīng)在大中城市普及,越來越多的家庭網(wǎng)絡(luò)都提升到了10
    發(fā)表于 07-10 12:04

    供應(yīng)國產(chǎn)以太網(wǎng)PHY芯片SR8201F

    供應(yīng)100M以太網(wǎng)PHY芯片,自主研發(fā),mii/rmii接口,100M網(wǎng)絡(luò)PHY芯片,可應(yīng)用于嵌入式系統(tǒng)網(wǎng)絡(luò)設(shè)計(jì),安防監(jiān)控領(lǐng)域,樓宇對講,智
    發(fā)表于 07-24 19:01

    100M以太網(wǎng)PHY SR8201F設(shè)計(jì)資料

    MII/RMII接口 100M以太網(wǎng)PHY SR8201F設(shè)計(jì)資料
    發(fā)表于 04-09 14:00

    為什么以太網(wǎng)+柔性板與電腦無法協(xié)商為100M?

    硬件:基于STM32F4單片機(jī)+LAN8720A(PHY)芯片,移植LWIP輕型以太網(wǎng)協(xié)議棧,硬件參考發(fā)燒友探索者開發(fā)板。連接方式:1.板子通過剛?cè)峤Y(jié)合板與PC機(jī)進(jìn)行連接,系統(tǒng)上電后,PC端5s后
    發(fā)表于 09-11 02:53

    CH32V307評估板試用體驗(yàn)】之一————開箱

    UART數(shù)量到8組,電機(jī)定時器到4組。提供USB2.0高速接口(480Mbps)并內(nèi)置了PHY收發(fā)器,以太網(wǎng)MAC升級到千兆并集成了10M-PHY模塊。首先看顏值,這款開發(fā)板顏值是能打的,黑色PCB板,簡約
    發(fā)表于 07-05 17:16

    基于FPGA的10M/100M以太網(wǎng)控制器的設(shè)計(jì)

    介紹了一種10M/ 100M 以太網(wǎng)控制器的實(shí)現(xiàn)方法,該控制器以FIFO 作為幀緩存,通過程序設(shè)計(jì)實(shí)現(xiàn)10M/ 100M 自適應(yīng),設(shè)計(jì)中采用
    發(fā)表于 09-22 10:24 ?87次下載

    LPC2138的100M以太網(wǎng)開發(fā)板原理圖

    LPC2138的100M以太網(wǎng)開發(fā)板原理圖 開發(fā)板電路圖
    發(fā)表于 10-19 16:51 ?229次下載

    股份以太網(wǎng)擴(kuò)展多外設(shè)接口芯片CH9130概述

    CH9130是一款用于以太網(wǎng)絡(luò)擴(kuò)展多外設(shè)接口的芯片,內(nèi)置10/100M以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY),完全兼容 IEEE802
    的頭像 發(fā)表于 11-11 10:23 ?4878次閱讀
    <b class='flag-5'>沁</b><b class='flag-5'>恒</b>股份<b class='flag-5'>以太網(wǎng)</b>擴(kuò)展多外設(shè)接口芯片<b class='flag-5'>CH</b>9130概述

    100M以太網(wǎng)口雷擊靜電保護(hù)用GDT放電管和TVS管選型

    為此,以太網(wǎng)口浪涌靜電防護(hù)成為了業(yè)內(nèi)必然的選擇。關(guān)于以太網(wǎng)口浪涌靜電保護(hù)方案,不同電路保護(hù)器件公司設(shè)計(jì)的方案略有差異。電路保護(hù)器件廠家東沃電子設(shè)計(jì)的以太網(wǎng)口保護(hù)方案有:100M(百兆)
    的頭像 發(fā)表于 07-11 10:07 ?5907次閱讀
    <b class='flag-5'>100M</b><b class='flag-5'>以太網(wǎng)</b>口雷擊靜電保護(hù)用GDT放電管和TVS管選型

    國產(chǎn)芯片USB PHY芯片替代方案解析

    USB PHY芯片CH132系列的核心優(yōu)勢分析
    的頭像 發(fā)表于 03-11 14:01 ?2172次閱讀
    <b class='flag-5'>國產(chǎn)</b>芯片<b class='flag-5'>沁</b><b class='flag-5'>恒</b>USB <b class='flag-5'>PHY</b>芯片替代方案解析

    國產(chǎn)芯片替代方案:解析以太網(wǎng)PHY芯片

    國產(chǎn)以太網(wǎng)PHY芯片:高性能替代方案助力國產(chǎn)化升
    的頭像 發(fā)表于 03-12 10:40 ?4058次閱讀

    國產(chǎn)芯片替代方案:解析以太網(wǎng)協(xié)議棧芯片

    在工業(yè)控制、物聯(lián)網(wǎng)設(shè)備及嵌入式以太網(wǎng)應(yīng)用中,WIZnet的W5500、W6100、W5100S等芯片憑借其硬件協(xié)議棧特性廣受開發(fā)者青睞。然而,隨著國產(chǎn)芯片技術(shù)的成熟,微電子推出的?
    的頭像 發(fā)表于 03-17 10:26 ?2686次閱讀

    國產(chǎn)芯片替代方案:解析USB轉(zhuǎn)以太網(wǎng)芯片

    在USB外接網(wǎng)卡、工控設(shè)備、嵌入式網(wǎng)絡(luò)擴(kuò)展等場景中,瑞昱(Realtek)?RTL8152?憑借成熟的USB轉(zhuǎn)10/100M以太網(wǎng)功能占據(jù)主流市場。然而,國產(chǎn)芯片廠商
    的頭像 發(fā)表于 03-17 10:46 ?3078次閱讀

    有關(guān)100M、1000M以太網(wǎng)一致性測試問題探討交流

    100M、1000M以太網(wǎng)一致性測試
    的頭像 發(fā)表于 12-14 10:42 ?473次閱讀
    有關(guān)<b class='flag-5'>100M</b>、1000<b class='flag-5'>M</b><b class='flag-5'>以太網(wǎng)</b>一致性<b class='flag-5'>測試</b>問題探討交流