芯片的英文手册需要全部看吗?

2023-10-26

以下文章来源于:公_众_号开源电子网
读取更多技术文章,请扫码关注
在这里插入图片描述

芯片的英文手册需要全部看吗?

进入嵌入式行业的人都知道,必定和英文手册打交道的,例如使用一款PHY芯片设置电路,那么首要任务就是查找该PHY芯片的手册以及相关资料,这些资料呢,往往都是英文形式的,很少有中文的手册,对于英文不好的开发人员也是一种烦恼的技术活,一般手册主要包含了芯片描述,芯片引脚描述,通信电气属性,寄存器描述等等信息。问题来了,作为一名技术人员我们有必要把英文手册全部读完吗,显然不是的,我们一般查找重要的知识点,。
如果你作为一名硬件工程师,那么你的首要任务就是设置电路且并不涉及软件的问题,所以他不需要看相关寄存器描述等等信息。
如果你作为一名纯软件工程师,那么你就比硬件工程师比较深入一点了,前提你必须懂一点点的电路,不然原本是电路有问题,你自己猛调代码显然不行的,所以作为纯软件工程师必须要查看硬件工程师的设计的电路是否合理(看芯片引脚描述)才能调试代码。

硬件工程师职责一般分为三部(有些没有描述,请见谅,因为小编不是硬件工程师):
① 设计需求(客户或者老板的需求):例如使用STM32 + PHY芯片,那么它们连接的方式一般有两种,一种是MII,另一种是RMII接口。
在这里插入图片描述

网口由CPU、MAC和PHY三部分组成,对于上述的三部分,并不一定都是独立的芯片,根据组合形式,可分为下列几种类型:
 CPU集成MAC与PHY(一般是10Mbsp);
 CPU集成MAC,PHY采用独立芯片(一般是10/100Mbsp都可以);
 CPU不集成MAC与PHY,MAC与PHY采用集成芯片;

② 制作原理图(使用AD等软件制作):根据PHY芯片手册以及STM32的ETH接口等制作原理图
③ 制作PCB:前两步已经阐述了,制作完成之后就是打样,提交给测试工程师或者如软件工程师调试。
在这里插入图片描述

硬件工程师对于芯片手册需要知道哪些信息:

  1. 芯片的引脚描述(pin description):
    举个栗子:
    在这里插入图片描述

    上图红色框框部分:如果该芯片的1号引脚上拉(高电平)表示RMII模式,否则下拉(低电平)就是MII模式,这里就是根据设计需要修改,其他引脚也是一样,必须根据设计需求来修改电路。

  2. 芯片连接方式(大家在手册查找即可)
    举个栗子:
    在这里插入图片描述

MCU和PHY连接的方式有两种,一种MCU输出50Hz给PHY芯片,另一种是使用晶振提供PHY时钟。
3. 芯片封装设计(一般在最后一页讲到)
举个栗子:
在这里插入图片描述

硬件工程师肯定知道怎么做,这里我们就必须讲解。

软件工程师职责大概分为三部(这里小编只写大概的职责,还有很多):
① 原理图是否存在问题:因为我们不知道硬件工程师设计电路时候有些相关的引脚是否连接或者说忘记连接等等情况,这里必须有软件工程师发现问题,然后反馈给硬件工程师修改电路,如果存在电路问题,那么我们单单调试代码是不出来的(这里就是重点)。
在这里插入图片描述

② 编写代码,根据芯片手册编写相应的代码,我们一般看寄存器描述即可。
③ 测试是否成功。
软件工程师对于芯片手册需要知道哪些信息:

  1. 芯片的引脚描述(pin description):检测硬件工程师设计的电路是否正确。

  2. 芯片连接方式:检测硬件工程师设计的电路是否满足设计需求。

  3. 寄存器描述(Register Descriptions)
    举个栗子:
    在这里插入图片描述

    上图不针对那款PHY芯片,这里只借鉴而已。PHY芯片的寄存器主要用来配置PHY芯片按照用户的需求来修改的,如果有学习STM32,那么调用ETH_WritePHYRegister()来指定那个寄存器写入数据,调用ETH_ReadPHYRegister()读取那个寄存器的数据。
    其实STM32的ETHERNET的驱动函数已经帮我们写好了,我们只知道四个参数如何填写即可(大家可以使用正点原子的例程,只修改这四个参数就完成通信,前提你的电路是正常的):
    #define XXX_PHY_ADDRESS //PHY芯片的 PHY芯片地址.
    #define PHY_SR //PHY芯片的PHY状态寄存器地址
    #define PHY_SPEED_STATUS //PHY芯片的PHY速度值掩码
    #define PHY_DUPLEX_STATUS //PHY芯片的PHY连接状态值掩码
    #define XXX_PHY_ADDRESS如何设置:
    举个栗子:
    这个宏定义根据你的PHY芯片的LED0和LED1管脚,例如某个PHY芯片为例:

    如果这两个管脚硬件接下拉,那么PHY芯片的 PHY芯片地址设置为0x00或者0。

#define PHY_SR如何设置:
#define PHY_SPEED_STATUS如何设置:
#define PHY_DUPLEX_STATUS如何设置:
举个栗子:
这里小编教你一个方法(重点):这里看PHY芯片寄存器设置的。看那个寄存器可以设置网络速率和工作状态(全双工/半双工) ,那么PHY_SR就是指向这个寄存器,例如某个PHY芯片的某个寄存器:
在这里插入图片描述

所以PHY_SR设置为31,或者0x1F,PHY_SPEED_STATUS和PHY_DUPLEX_STATUS根据这个寄存器设置网络的速率和工作状态。

重点又来了,如何调试:

  1. 首先判断PHY有没有工作,例如判断?就是时钟是否起振。

  2. 判断PHY芯片的原理图是否正确。

  3. 判断STM32的REF_CLK管脚有没有50MHz,如果没有那么STM32和PHY芯片无法通信。

  4. 判断STM32和PHY芯片是否有通信,使用ETH_ReadPHYRegister()读取某个寄存器有数据,那么通信成功。

  5. 如果STM32和PHY芯片有通信,但无法实现功能,该怎么办呢?建议检测PHY和网口的电路,以及debug stm32xxxx_eth,c的ETH_Init()函数:
    举个栗子:
    在这里插入图片描述

    如果你设置的100Mbsp,但是debug时候跳进10Mbsp,表示PHY_SPEED_STATUS宏定义设置错误。如何你设置全双工,但是debug时候跳进半双工,那么PHY_DUPLEX_STATUS定义设置错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

芯片的英文手册需要全部看吗? 的相关文章

  • 使用 XCode 进行测试时,MacOS 应用程序本地通知未显示

    我尝试将横幅通知生成器添加到我的 macOS swift 应用程序中 但在 XCode 中运行测试时 横幅没有出现 并且通知中心中也没有任何新通知可见 我计算机上的其他应用程序会定期生成通知 我错过了什么 我已按要求授予许可 我的应用程序委
  • 如何在 apache 中访问唯一 ID?

    如何访问 apache 跟踪每个请求的 unique id 我想在它调用的任何 php 脚本中跟踪它 并记录每个请求 我删除了以下行的评论http conf file LoadModule unique id module libexec
  • 拖动调整 NSView(或其他对象)的大小

    我正在尝试构建一个应用程序 允许用户使用可以调整大小的矩形边界框来指定图像的多个区域 到目前为止 我已经有一个NSScrollView其中包含一个NSImageView这样用户就可以放大图像并根据需要滚动 我目前的想法是我可以使用NSVie
  • 运行最新版本时没有“最新”消息?

    我正在尝试使用Sparkle https sparkle project org与 Qt Go 的绑定 https github com therecipe qt app 闪光 m import
  • 如何在 Mac 上运行 virtualenv python

    我正在尝试使用 virtualenv 在我的 mac 上创建虚拟 python 环境 我已经下载了 virtualenv 但是我无法运行它 因为即使我提供了正确的路径 它也找不到我的 python3 安装路径 这是我运行的命令和响应 vir
  • Homebrew 将二进制文件放在哪里?

    Homebrew 是否安装软件包 usr local bin默认情况下 即它把二进制文件放在那里 我们可以告诉 Homebrew 将二进制文件放在其他地方吗 Apple Silicon Mac ARM 二进制文件位于 opt homebre
  • OSX 中的动态链接优先级之间存在冲突吗?

    OSX 上不同 libjpeg 动态库之间存在动态链接冲突 首先有一个标准的本机 libJPEG dylib 位于 System Library Frameworks ImageIO framework Versions A Resourc
  • 如何在 osx 终端中返回应用程序版本

    我需要在 Mac osX 10 10 上的 sh 脚本中使用应用程序版本 以便我可以与另一个数字进行比较 以便我可以强制更新或不更新 到目前为止我已经有了这个 我使用 Firefox app 作为示例 FirefoxmdlsVersion
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • OSX:检测空格键向下和向上事件

    我需要记录我自己演讲的数千个简短的声音片段 我正在为语音识别引擎训练声学模型 因此 对于每个文本 屏幕上都会显示一行文本 我必须说出它 并将音频捕获到 WAV 中 我找到了一个用于录制音频的示例项目 现在我想弄清楚如何进行键盘输入 我想按下
  • Xdebug PhpStorm 不停止断点

    PHP 7 2 X调试2 7 阿帕奇 2 4 38 PhpStorm 2018 1 4 Mac 操作系统 莫哈维 本地项目 在 Firefox 中安装 Xdebug 帮助程序 我无法调试代码 代码停在第一行 当我尝试更进一步或提出要点时 调
  • MacOS Big Sur 中的 NPM 错误“找不到 Python 可执行文件”

    我已经花了整整一周的时间寻找这个问题的答案 但没有成功 我查看了每个 StackOverflow 帖子 Google 的每一篇文章以及我能找到的每个相关的 Github 问题 大多数相关错误似乎都比较旧 所以我想知道我的问题是否由于我使用的
  • “config”脚本存在于系统或 Homebrew 目录之外

    运行 brew doctor 并出现一些错误 我按照此链接中的建议设法解决了路径问题 如何修改 Homebrew 的 PATH https stackoverflow com questions 10343834 homebrew want
  • 为什么在 Excel for Mac 中使用 VBA 的输入框不显示提示文本?

    我一直在构建一个使用 Excel 跟踪学生成绩的系统 我在 Windows 下编写了它 一切正常 但是当我在 Mac 版本的 Excel 最新版 本 15 24 我相信 上测试它时 InputBoxes 只显示输入数据的标题和文本框 不显示
  • NSWindow 关闭时退出应用程序

    当主应用程序 唯一的应用程序 关闭时 如何正确退出 Mac OS X 应用程序 我知道有一个方法 void windowWillClose NSNotification notification in NSWindowDelegate 但它
  • 使用 Python 查找 Mac OS X 中的当前活动窗口

    有没有办法使用 Python 在 Mac OS X 上查找给定时间当前活动窗口的应用程序名称 这应该有效 usr bin python from AppKit import NSWorkspace activeAppName NSWorks
  • OSX 和 SED - 删除文档目录中第 25 行之后的所有行

    我有一个包含数千个 txt 文件的目录 我需要修剪文件 以便删除每个文件中第 25 行之后的每一行 我使用的是 Mac OSX 10 14 6 我怎样才能做到这一点 我所做的尝试 经过研究 我认为 Mac OSX 终端中的 SED 是实现此
  • NSMenuItem、自定义视图和 mouseUp 的奇怪问题:

    我在这里遇到了一个非常非常奇怪的 NSMenu 问题 我使用的大约一半的 NSMenuItems 通过 NSMenuItem 上的 setView 方法具有自定义视图 在此自定义视图中 我实现了 mouseUp 来捕获用户单击菜单项的时间
  • 水银大号

    你知道如何让 Quicksilver 在屏幕上显示大量的大字体吗 通过点击 然后输入自由文本 选择 操作 下的 查看大字体 并按 Enter 键 好吧 有谁知道一种以编程方式做到这一点的方法吗 另外 quicksilver 是必需的还是内置
  • activeProcessorCount 和processorCount 之间有什么区别?

    The NSProcessInfo类有两个名为processorCount and activeProcessorCount 该文档对于处理核心和活动处理核心之间的区别尽可能没有帮助 或者 换句话说 什么才算是一个inactive可可的处理

随机推荐

  • hexo stellar博客设置Twikoo评论(使用Zeabur 部署)

    2023年7月24日更新 需要绑定一下支付宝 每个月大约4块钱 还算对学生党划算 否则可能无法使用免费的服务 说是免费额度结果还是要钱鸭 这里按要求开通就好了 主要参考 stellar 评论插件配置 Twikoo 这里使用的是Twikoo
  • i love you 浪漫字体复制_七夕

    七夕情人节来临之际 朋友圈早已被各种代购刷屏 你啥都不送 让你女朋友七夕的时候在朋友圈炫耀什么 扫一扫进七夕保命群 教你七夕买什么送女友才能保命 你男朋友是不是以为你缺氧 所以每个节日都送你空气 不得不承认他们一个个都是被代购事业耽误的网络
  • Towards 3D Human Pose Estimation in the Wild: a Weakly-supervised Approach论文翻译

    论文地址 https arxiv org abs 1704 02447 code https github com xingyizhou pytorch pose hg 3d Towards 3D Human Pose Estimation
  • 【机器学习】浅谈 模型大小与推理速度

    目录 一 前言 二 常用模型大小评估指标 2 1 计算量 2 2 参数量 2 3 访存量 2 4 内存占用 2 5 小结 三 计算量越小 模型推理就越快吗 3 1 计算密度与 RoofLine 模型 3 2 计算密集型算子与访存密集型算子
  • 逍遥模拟器导出文件到电脑

    1 确保已经成功连接模拟器 如有问题 请查看 https blog csdn net qq 15228737 article details 81142905 2 用cd命令找到要导出的文件夹 文件 再将该文件夹 文件导出到电脑上 如下图
  • React学习--JSX与react事件

    1 JSX 1 1 表达式 在React中使用JSX来描述HTML页面 而且可以与js混合使用 使用JavaScript表达式时要将表达式包含在大括号里 const user firstName Harper lastName Perez
  • 关于虚方法virtual和抽象方法以及多态的研究

    虚方法virtual定义 当类中的方法声明前加上了virtual 修饰符 我们称之为虚方法 反之为非虚 使用了virtual 修饰符后 不允许再有static abstract 或override 修饰符 必须是Public 为了实现多态
  • 御剑WEB指纹识别系统教程,图文教程(超详细)

    作者简介 CSDN top100 阿里云博客专家 华为云享专家 网络安全领域优质创作者 推荐专栏 对网络安全感兴趣的小伙伴可以关注专栏 网络安全入门到精通 御剑WEB指纹识别 一 基本使用 二 内置字典 三 自定义字典 四 扫描原理 御剑W
  • Content-Type 属性值

    数据请求headers常见的Content Type值 Content Type 属性值众多 每个值都有其特定的作用和使用场景 下面是一些常见的 Content Type 值和对应的作用 Content Type application x
  • 算法-宽度优先搜索

    算法 宽度优先搜索 一 宽度优先搜索 广度优先或横向优先搜索 是一种图形搜索算法 简单的说 BFS是从根节点开始 沿着树的宽度遍历树的节点 如果所有节点均被访问 则算法中止 DFS Depth First Search 深度优先搜索 对每一
  • 解决Mac版微信小程序开发工具打开后无法显示二维码

    问题描述 正常情况下 打开微信小程序开发工具后 首页提示扫描二维码进行登陆 但是如果不显示二维码 当然无法登陆 解决方案 无法显示二维码肯定是程序运行哪里出错了 我们直接点击桌面图标是无法排查错误 所以需要切换至命令行进行启动 打开命令行
  • 华为交换机开局配置

    sysname SWITCH aaa undo local aaa user password policy administrator local user admin password irreversible cipher admin
  • 四、无人机知识笔记(初级:基本运动原理)

    笔记来源于 沈阳无距科技 工业级无人机的中国名片 编程外星人 目录 一 多旋翼直升机 二 基本飞行姿态 三 多旋翼飞行原理 四 反扭力与偏航运动 五 螺旋桨 六 有刷电机和无刷电机 七 电调与PWM信号 八 动力电池 九 遥控器 十 机架设
  • C++ ——STL(上)

    前言 STL基本概念 1 STL Standard Template Library 标准模板库 2 STL从广义上分为 容器 container 算法 algorithm 迭代器 iterator 3 容器和算法之间通过迭代器进行无缝连接
  • SQL注入***

    SQL注入 是 对数据库进行 的常用手段之一 随着B S模式应用开发的发展 使用这种模式编写应用程序的程序员也越来越多 但是由于程序员的水平及经验也参差不齐 相当大一部分程序员在编写代码的时候 没有对用户输入数据的合法性进行判断 使应用程序
  • npm 安装卸载模块 & ionic插件安装与卸载

    npm安装模块 npm install xxx利用 npm 安装xxx模块到当前命令行所在目录 npm install g xxx利用npm安装全局模块xxx 本地安装时将模块写入package json中 npm install xxx
  • 用回车键实现MFC对话框中TAB键控制输入焦点在控件中跳转的效果

    用回车键实现MFC对话框中TAB键控制输入焦点在控件中跳转的效果 以下转载自 http blog csdn net ghgk archive 2004 10 20 144795 aspx 近日在为一个数据应用写数据输入界面 大量的编辑框要想
  • maven本地仓库批量上传私服

    最近做项目遇到一个问题 从别的地方拿过来的工程是用maven构建的 而且用了许多自有的依赖包 如果一个个的上传到私服简直是浪费时间 于是用Python 写了一个批量上传的工具 简化自己的工作量 使用的是Python3 分别依赖了os sub
  • Run-Time Check Failure #2 - Stack around the variable ‘password(数组名)‘ was corrupted.

    记录一些小小的bug 使用visaul 2019编辑c语言程序 程序可以正常运行 但程序结束退出时忽然报错闪退 原来是我定义password 数组时没有规定数组大小 导致栈溢出 正确的做法只要给数组规定一个大小就行了 以下讲解来自chatg
  • 芯片的英文手册需要全部看吗?

    以下文章来源于 公 众 号开源电子网 读取更多技术文章 请扫码关注 芯片的英文手册需要全部看吗 进入嵌入式行业的人都知道 必定和英文手册打交道的 例如使用一款PHY芯片设置电路 那么首要任务就是查找该PHY芯片的手册以及相关资料 这些资料呢