一、方案

1、移植开源方案SOEM

2、专用芯片

二、SOEM移植

(一)硬件

stm32f407,168M

PHY:LAN8720A

(ii) Points to note

1, the PHY address of the LAN8720 problem.

2, the chip should operate on the reset pin after power on.

3、Enable the hybrid mode of LAN8720, in the new HAL library, this setting is contained in the ETH_MACFilterConfigTypeDef structure, configured by HAL_ETH_SetMACFilterConfig function.

Full code.

/* ETH init function */
void MX_ETH_Init(void)
{

/* USER CODE BEGIN ETH_Init 0 */
// Reset the chip
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);
HAL_Delay(10);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);
/* USER CODE END ETH_Init 0 */

static uint8_t MACAddr[6];

/* USER CODE BEGIN ETH_Init 1 */

/* USER CODE END ETH_Init 1 */
heth.Instance = ETH;
MACAddr[0] = 0x00;
MACAddr[1] = 0x80;
MACAddr[2] = 0xE1;
MACAddr[3] = 0x00;
MACAddr[4] = 0x00;
MACAddr[5] = 0x00;
heth.Init.MACAddr = &MACAddr[0];
heth.Init.MediaInterface = HAL_ETH_RMII_MODE;
heth.Init.TxDesc = DMATxDscrTab;
heth.Init.RxDesc = DMARxDscrTab;
heth.Init.RxBuffLen = 1524;

/* USER CODE BEGIN MACADDRESS */

/* USER CODE END MACADDRESS */

if (HAL_ETH_Init(&heth) ! = HAL_OK)
{
Error_Handler();
}

memset(&TxConfig, 0 , sizeof(ETH_TxPacketConfig));
TxConfig.Attributes = ETH_TX_PACKETS_FEATURES_CSUM

 

最新文章

  1. [No00008A]bat改变cmd命令提示符颜色
  2. 如何学习JavaScript
  3. golang的json操作
  4. 转: CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法
  5. SwipeRefreshLayout实现上拉加载下拉刷新
  6. 什么是BI(Business Intelligence)【转】
  7. 024-ActionResult解说
  8. Java学习----反复做某件事情
  9. Ubuntu 安装和配置minicom
  10. SpringMVC配置+小例子
  11. 安装node.js和npm
  12. 给json对象去除重复的值
  13. 学习Css补充知识点
  14. JWT(Json web token)认证详解
  15. 学习OpenCV——SVM
  16. eclipse各种报错
  17. Sybase数据库第三方软件安装
  18. “全栈2019”Java第六章:注释
  19. Database项目中关于Procedure sp_refreshsqlmodule_internal的错误
  20. 【转】持续集成 Sonar 平台搭建及 Sonar 自定义规则打包部署篇

热门文章

  1. (已解决)富文本编辑器:使用layui的layedit怎么回显存放在数据库里的富文本数据(包含有图片base64码)?
  2. Hadoop批处理方案 和 MPP架构方案 作为数据仓库的区别
  3. 20_webpack_shimming预支全局变量和css的抽离
  4. 26 docker 安装 solr
  5. [笔记] Android开发中的gradle是什么?
  6. 使用MVC编程模型通过flask蓝图实现前端后台新闻发布系统
  7. 【git】3.2git分支-分支的新建与合并
  8. js 浮点数加、减、乘、除。
  9. Android Studio 修改jar包中的.class代码
  10. Cplex-opl解决网络路由选择和资源分配问题