Stm32CubeMX 为 stm32mp135d 添加网卡 eth

embedded/2024/9/23 10:46:09/

Stm32CubeMX 为 stm32mp135d 添加网卡 eth

  • 一、启用设备
    • 1. eth 设备添加
    • 2. eth 引脚配置
    • 2. eth 时钟配置
  • 二、 生成代码
    • 1. optee 配置
    • 2. uboot 配置
    • 3. linux 配置

bringup 可参考:Stm32CubeMX 生成设备树

一、启用设备

1. eth 设备添加

我这里只启用一个eth设备,另一个eth配置是一样的,选择好网卡phy接口(interface)MII, RMII, RGMII
我的phy使用是裕太yt8512百兆,接口RMII,需要先选中ETH Ref Clock Input,才可以选择RMII
确定接口类型很重要,务必根据自己的phy手册确定
在这里插入图片描述

2. eth 引脚配置

参考这里,选择 GPIO 功能复用,配置自己板子eth所需的引脚
在这里插入图片描述

2. eth 时钟配置

根据自己板子用的phy手册配置时钟
确认以下几点:

    1. phy 需要多少兆时钟,是否有晶振(Crystal)
    1. 是Soc 的 eth 给 网卡 phy 提供时钟,还是 网卡 phy 给 Soc 的 eth 提供时钟
      使用PLL4P,还是PLL3Q,自己决定
      在这里插入图片描述

全部配置完后,点击代码生成

二、 生成代码

1. optee 配置

optee这里就生成了两行代码:
一行用来配置时钟:

st,clksrc = <CLK_ETH1_PLL4P
...

一行用来通过安全验证:

...st,decprot = <DECPROT(STM32MP1_ETZPC_ETH1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
...

github:optee 仓库
gitee: optee 仓库

2. uboot 配置

对u-boot 生成的代码进行补充一些配置:st官方的设备树配置方法: eth device tree config
这是我的设备树配置,根据自己的板子确定配置
这里ETH 的 reset引脚不用放到引脚配置中,而是作为单独的 gpio 来使用了:reset-gpios = <&gpioa 6 GPIO_ACTIVE_LOW>;
引脚配置在stm32cubemx好的话,生成的代码中 pinctrl 就无需再更改了

github: uboot 仓库
gitee: uboot 仓库

3. linux 配置

linux下eth配置和u-boot没有什么区别,引脚是和u-boot相同的:

github: linux 仓库
gitee: linux 仓库

目前在我使用 stm32mp135 调试的设备中,网卡是最麻烦的,时钟配置,硬件排查等问题,后面单独开一篇文章大概描述一下

能力一般,水平有限,知识浅薄,如果能帮到您,那我感到很荣幸


http://www.ppmy.cn/embedded/26877.html

相关文章

GPT3 探索指南(三)

原文&#xff1a;zh.annas-archive.org/md5/e19ec4b9c1d08c12abd2983dace7ff20 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第九章&#xff1a;构建一个由 GPT-3 提供动力的问答 app 到目前为止&#xff0c;我们已经查看了&#xff08;并编写了&#xff09;很多代…

【Linux系统化学习】生产者消费者模型(阻塞队列和环形队列)

目录 生产者消费者模型 什么是生产者消费者模型 为什么要使用生产者消费者模型 生产者消费者模型的优点 为什么生产者和生产者要互斥&#xff1f; 为什么消费者和消费者要互斥&#xff1f; 为什么生产者和消费者既是互斥又是同步&#xff1f; 基于BlockingQueue的生产者…

纯血鸿蒙APP实战开发——发布图片评论

介绍 本示例将通过发布图片评论场景&#xff0c;介绍如何使用startAbilityForResult接口拉起相机拍照&#xff0c;并获取相机返回的数据。 效果图预览 使用说明 通过startAbilityForResult接口拉起相机&#xff0c;拍照后获取图片地址。 实现思路 创建CommentData类&#…

vue3 引用虚拟键盘simple-keyboard

simple-keyboard官网地址&#xff1a;https://virtual-keyboard.js.org 目前实现效果图是&#xff08;实现数字、大小写字母键盘&#xff09;&#xff1a; 1.需要先安装simple-keyboard npm install simple-keyboard --save2.封装sinpleKeyboard 组件 <!-- keyboard-bo…

pytorch中创建maskrcnn模型

0.模型输入/输出参数参见 链接: pytorch的mask-rcnn的模型参数解释 核心代码 GeneralizedRCNN(这里以mask-rcnn来解释说明) # 通过输入图像获取fpn特征图,注意这里的backbone不是直接的resnet,而是fpn化后的 features self.backbone(images.tensors) # 由于是mask-rcnn,故而…

监控操作台为生活提供安全保障

在科技日新月异的现代社会&#xff0c;监控操作台已成为我们生活中不能缺少的一部分。它犹如一座城市的守护神&#xff0c;默默无闻地守护着我们的安全&#xff0c;确保着每一刻的平安。今天&#xff0c;和北京嘉德立一同走进这个神秘的世界&#xff0c;揭开监控操作台的神秘面…

Ubuntu下vscode彻底卸载

参考步骤&#xff1a;大佬博客 1、 执行以下命令卸载 Visual Studio Code&#xff1a; sudo apt purge code2、删除 Visual Studio Code 的配置文件和缓存文件。这些文件通常位于用户的主目录下的 .config 和 .cache 目录中。你可以使用以下命令删除它们&#xff1a; rm -rf …

go语言获取变量类型的4种方式

在go语言中我们常常需要获取某个变量的类型&#xff0c;其他语言如python可以使用 type(x), javascript中可以使用 typeof x 获取变量类型&#xff0c; Go 语言中我们也可以通过一下4种方式获取变量的类型。 1. 通过 fmt.Printf 的 %T 打印变量的类型&#xff1b; var x flo…