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

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(使用前将#替换为@)

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

  • Mac OS X 上的 ASP.NET MVC 5

    我想了解如何在运行 OS X 10 10 5 的 Mac 上使用 Microsoft ASP NET 框架构建网站 我将跟随一个使用 ASP NET MVC 5 的在线课程 到目前为止我读过的所有教程都说要使用Homebrew http b
  • 如何使虚线可移动

    我用下面的代码画了一条虚线 get the current CGContextRef for the view CGContextRef currentContext CGContextRef NSGraphicsContext curre
  • 检查 u 键是否被按下 Swift Cocoa [重复]

    这个问题在这里已经有答案了 我正在尝试检测是否U键是否被按下 如果是的话应该print BUT BUT 但我不确定如何检查不同的按键 因为按键的文档非常糟糕 我找到了带有键码的答案 但它们仅适用于 QWERTY 键盘 视图控制器 swift
  • 无法通过 pip 安装 xmlsec

    我在运行时收到以下信息pip install xmlsec在 macOS Big Sur 11 3 1 中 Building wheels for collected packages xmlsec Building wheel for x
  • 为什么我无法在 OS X 上更改 tkMessagebox.askyesno() 上的图标?

    tkMessageBox askyesno Title Message icon tkMessageBox WARNING 在 OS X 上只给我火箭图标 我知道 OS X 和 tkMessageBox 图标有些奇怪 因为tkMessage
  • macOS:以编程方式检查进程是否作为 launchDaemon 或 launchAgent 运行或从命令行运行

    我想了解我的进程运行的上下文 我想区分以下情况 它作为持久计划任务运行 launchDaemon launchAgent 它被称为按需并由 launchd 使用创建open命令行或双击 它是直接从命令行终端调用的 即 gt bin myPr
  • 使用 Applescript 创建一个简单的菜单栏应用程序

    我正在尝试在 OS X Yosemite 中创建一个菜单栏应用程序 它仅包含一个带有子菜单的下拉菜单 该菜单及其子菜单将由 applescript 脚本填充 我之前找到过类似的教程 但它们似乎都相当过时 并且无法在 Xcode 6 2 中正
  • CakePHP:无法访问 MySQL 数据库

    我是 CakePHP 的新手 刚刚完成配置过程 但很困惑为什么 Cake 无法访问我的 MySQL 数据库 Cake 信息页面显示我的 tmp 目录是可写的 FileEngine 正在用于缓存 不知道这意味着什么 并且我的数据库配置文件存在
  • 在 MacOS 上重新启动终端而不关闭

    如何在不关闭窗口的情况下重新启动当前的 MacOS 终端会话 在Linux中我使用exec bash但在这种环境下它不起作用 我对 bash profile 提示 别名等 我想在不关闭它并再次打开的情况下查看 只需输入命令 exec bas
  • 使用 MTL/Boost 库 Mac 终端 C++

    准确地说 我正在尝试运行这个优秀的项目 https github com ppwwyyxx panorama https github com ppwwyyxx panorama 我使用的是现代 Mac 问题是我似乎无法让我的计算机正确包含
  • 如何从 Mac OS X 导出证书以获得一对 .cert 和 .key 文件?

    我在 Mac 10 10 1 上创建了证书 并且在钥匙串访问证书中拥有私钥 在 Windows 上我必须使用这个 并且我需要 cert 和 key 文件 如何导出该证书以获得这两个文件 我可以导出为 pb12 或 cert 但不能导出为 c
  • Java 在 OS X 报告上拖放移动而不是复制

    更新状态 Bug 已报告给 Oracle 目前仍处于开放 未解决状态 https bugs openjdk java net browse JDK 8054325 https bugs openjdk java net browse JDK
  • tmux 标题字符串不执行 shell 命令

    我的中有以下几行 tmux conf set option g set titles on set option g set titles string whoami H PWD S W F I P 这在过去是有效的 但升级到 2 0 后
  • set-key-partition-list codesign 后仍提示密钥访问

    我正在导入一个PEM使用以下命令包含我的代码签名身份的公钥和私钥的文件 security import PEM FILE k Library Keychains login keychain T usr bin codesign T usr
  • QFileSystemModel setRootPath

    我正在尝试创建一个 Qt 应用程序来显示文件夹 Mac OS 中的 Users 文件夹 的内容 这是代码 QFileSystemModel dirModel new QFileSystemModel dirModel gt setRootP
  • 一个好的8086模拟器[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 mac 有没有 8086 模拟器 如果是 哪个是最好的 除非您需要真正的原始 8086 带有自定义操作系统 否则您应该尝试 DosBox
  • 减少 CoreData 的调试输出?

    我正在开发一个使用 CoreData 的 iOS macOS 项目 它工作正常 但它会向控制台输出大量调试信息 这使得控制台无法使用 因为我的打印语句隐藏在所有与 CoreData 相关的内容中 我有一个非常简单的 CoreData 设置
  • gem install mysql:无法构建 gem 本机扩展 (Mac Lion)

    我为 Mac OS X Lion 安装了 MySQL 5 5 27 来自 dmg 现在我尝试安装 mysql gem gem install mysql Building native extensions This could take
  • Xcode 9:“clang:错误:生成多个输出文件时无法指定 -o”

    我刚刚将 Xcode 更新到版本 9 并且在编译时开始收到以下错误消息 该问题似乎与将 优化级别 参数设置为 无 即 O0 进行编译有关 如果我将其设置得更高 错误就会消失 但是当我增加优化时 调试工具将无法正常工作 例如变量跟踪 我查看了
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码

随机推荐

  • 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芯片的手册以及相关资料 这些资料呢