SOEM方案 STM32H743 EtherCAT主站 基于STM32H743芯片和SOEM的EtherCAT主站源码

本文介绍了基于STM32H743的EtherCAT主站实现,利用SOEM协议栈1.3.1版本,并详细讲解了lan8720网卡驱动的配置,包括轮询接收模式、时钟配置等。代码适用于NUCLEO-H743ZI开发板,支持多种驱动器,如汇川IS620N、三洋RS3等。
摘要由CSDN通过智能技术生成

这里讲一下lan8720网卡驱动。
其实也没啥好讲的,参考原子哥和野火的lwip教程中的裸机移植部分就可以了。
我直接贴代码了,结合lwip的教程以及stm32手册中的以太网部分,消化理解吧。
提供配套CUBE工程和技术支持。SOEM协议栈使用1.3.1版本。可配套NUCLEO-H743ZI开发板使用。支持DC同步。可配合汇川IS620N、三洋RS3、赛孚德ASD620B、埃斯顿ProNet、迈信EP3E、台达A2-E、伟创SD700、松下A5B/A6B和欧姆龙G5系列驱动器使用

有几点说一下:
1.以太网接收报文用的时轮询的方式,不是中断。即(ETH_Handler.Init.RxMode = ETH_RXPOLLING_MODE;//轮询接收模式)
2.注意lan8720的时钟配置,不同硬件平台是有差异的,注意看lan8720的芯片手册和原理图。
在这里插入图片描述
在这里插入图片描述
3.原子的f767开发板是有外部SDRAM的,以太网数据帧用的是外部SDRAM的空间。
在这里插入图片描述
在这里插入图片描述
4.如果用的是stm32片内的SDRAM的话,可以这么写:
在这里插入图片描述
5.如果是stm32f1x、stm32f4x之类的芯片,可以把下面红线部分删掉。
在这里插入图片描述
6.mac配置工作在混杂模式
在这里插入图片描述
基于原子f767开发板的代码
ETH_HandleTypeDef ETH_Handler; //以太网句柄

ETH_DMADescTypeDef *DMARxDscrTab; //以太网DMA接收描述符数据结构体指针
ETH_DMADescTypeDef *DMATxDscrTab; //以太网DMA发送描述符数据结构体指针
uint8_t *Rx_Buff; //以太网底层驱动接收buffers指针
uint8_t *Tx_Buff; //以太网底层驱动发送buffers指针

u32 interrupt_state(void)
{
int state;
state=(ETH_Handler.Instance->DMAIER);
return (u32)state;
}

//LAN8720初始化
//返回值:0,成功;
// 其他,失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值