[STM32H5]【NUCLEO- H563ZI 测评】4.EtherCat移植(一)

本文介绍了如何移植基于SOEM的开源主站EtherCat至1.3.1版本,包括网口配置、MAC配置、DMA设置,特别关注了LAN8742的100M速度限制。

移植前先把网络调通
EtherCat是基于SOEM的开源主站进行移植,目前我移植的版本是1.3.1。
第一步,网口配置
复制

 MX_ETH_Init();

int32_t status = 0;

void ETHThread_Entry(void *argument)

{

        (void) argument;

        ETH_MACConfigTypeDef MACConf;

        ETH_DMAConfigTypeDef dmaDefaultConf;

        dmaDefaultConf.DMAArbitration = ETH_DMAARBITRATION_RX1_TX1;

        dmaDefaultConf.AddressAlignedBeats = ENABLE;

        dmaDefaultConf.BurstMode = ETH_BURSTLENGTH_FIXED;

        dmaDefaultConf.TxDMABurstLength = ETH_TXDMABURSTLENGTH_32BEAT;

        dmaDefaultConf.RxDMABurstLength = ETH_RXDMABURSTLENGTH_32BEAT;

        dmaDefaultConf.FlushRxPacket = DISABLE;

        dmaDefaultConf.PBLx8Mode = DISABLE;

        dmaDefaultConf.RebuildINCRxBurst = DISABLE;

        dmaDefaultConf.SecondPacketOperate = ENABLE;

        dmaDefaultConf.TCPSegmentation = DISABLE;

        dmaDefaultConf.MaximumSegmentSize = 536;

        /* enable OSF bit to enhance throughput */

        HAL_ETH_SetDMAConfig(ð_handle, &dmaDefaultConf);

        /* Infinite loop */

        nx_eth_phy_init();

        status = nx_eth_phy_get_link_state();

         /* Get MAC Config MAC */

        HAL_ETH_GetMACConfig(ð_handle, &MACConf);

        MACConf.DuplexMode = ETH_FULLDUPLEX_MODE;

        MACConf.Speed = ETH_SPEED_100M;

        HAL_ETH_SetMACConfig(ð_handle, &MACConf);

        HAL_ETH_Start_IT(ð_handle);

        while(1)

        {

                status = nx_eth_phy_get_link_state();

                vTaskDelay(150);

        }

}

/* USER CODE 


根据官方给的例程代码,首先将网口初始化,MX_ETH_Init()。
初始化MAC之后最主要的是PHY的初始化。
根据例程的翻阅,只需要调用nx_eth_phy_init();即可。
根据nx_eth_phy_get_link_state()获取的状态进行全双工/半双工,10M/100M/1000M的适配,目前LAN8742只支持100M。
配置MAC后,启动中断。
根据link_state就可查询到是否插入网线。
下一步开始测试MAC收发函数功能和移植SOEM的ETHERCAT。
---------------------
作者:穿西装的强子
链接:https://bbs.21ic.com/icview-3318056-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值