gpt4 book ai didi

embedded - 学习电路板启动和硬件诊断的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 08:58:31 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

7年前关闭。




Improve this question




这是我的背景,我拥有计算机工程硕士学位,我的大部分工作经验都涉及为各种消费电子产品编写设备驱动程序。作为我类(class)的一部分,我已经完成了 8051 和 8086 Controller 编程。我还在汽车硬件的功能验证方面做了一些工作。现在我想进入非常低的级别,其中涉及刷新板、通电、引导加载程序编程、验证板上的各种组件、验证总线、存储器等。

最佳答案

首先,您需要对电子学有很好的了解,EE 学位有帮助但不是必需的,这取决于您要进入的市场。

你绝对需要很强的原理图阅读能力,好的原理图和坏的原理图。

您肯定需要强大的数据表和其他引用手册技能。这些手册中的大多数都有错误,因此您还需要一些黑客技能。永远不要相信手册,不要在没有针对硬件进行测试的情况下编写数百或数千行代码。一步一步来。有些供应商有很好的文档,有些则很糟糕,冲浪 sparkfun 和像 digikey 和 mouser 这样的地方可以从不同的供应商那里获得有关各种事物的数据表。

sparkfun.com 上有很多东西,基于 arm、基于 avr、基于 msp430 等等。这些当然都是经过测试的板子,但可以教你如何启动,如何阅读原理图和数据表(程序员引用手册等)以及如何对设备进行编程以使其执行。

能够读取verilog和vhdl,编写它的能力甚至更好。设计的“真正”文档是源代码本身。

操作示波器的能力。可能是您的第一大调试工具,用于找出没有出现问题的原因以及开发测试软件和调试您的软件。

为常用的接口(interface)开发丰富的知识。 spi、i2c、mdio、serial 等。理想情况下,您应该能够在 spi 总线上放置一些示波器并读取命令和响应。

能够编写代码对上述任何总线进行位冲击,控制时序,以便您不会超过任何相关部件的 I/O 速度能力。

基本的以太网协议(protocol)和工具,如wireshark 或其他类似的工具。如果板上有以太网,您将需要启动该接口(interface),接收一些数据,将其转储出来,以便能够解析字节并查看数据包。能够生成简单的数据包,arp、ping、udp。

阅读胖文件系统。 SD卡和其他类似的接口(interface)使用这个。

学习usb。

学习 pci/pcie。

德拉姆

来自 ti 的 stellaris 板装载有外围设备以试图弄清楚如何与 .

获取 beagleboard 原理图或 open-rd 或插件计算机原理图并研究所有主要组件,dram、闪存、SATA、以太网、USB 等。

哦,当然要学习如何对 eeproms 和 flashes 进行编程,eeproms 正在消亡,但不幸的是,它们彼此更加一致。闪存部分,spi,并行,加上每个微 Controller 都有一个自定义接口(interface),范围很广。

绝对习惯使用jtag。 openocd 很好,sparkfun 的 ftdi 串行分线板可用于 bit bang jtag 或几乎任何其他东西。 amontek 制造了 jtag-tiny,它适用于 arm 或重新用于其他平台。我认为格子程序员也可以重新利用。说到...了解可以对 fpgas 进行编程和启动的不同方式。同样,如何通过对某些 gpio 接口(interface)进行 bitbanging 来编程 fpga,通常 fpga 供应商会有一个骨架(例如 svf 播放器)并且您必须提供后端,这与将后端放在 openocd 上不同。一些微 Controller 系列具有非 jtag(通常是串行)接口(interface),可用作加载/编程芯片的替代方法。

查一下,了解一下pwm,脉宽调制。

研究 vpi 和其他在模拟下将测试软件与硬件/hdl 连接的方法,在芯片/逻辑在板上测试和编写测试软件可以带来很大的好处。

知道当电容或电阻太大或每个都不够(振铃)时时钟的样子。知道串扰是什么样的。

能够焊接有帮助。大约在一小时内第三次后,必须拆焊闪存,因为您不断犯软件错误并将电路板变砖,就像哭狼一样的男孩,您不会得到太多帮助。

临时编程,你开发程序/工具的速度越快,一天内完成的事情就越多。

这提醒我你必须有良好的纪律和耐心。在测试/调试时一次只改变一件事,它可能需要永恒来解决所有可能出错的事情,一次一件事,走一条合乎逻辑的道路。一次又一次地将问题一分为二,直到找到原因。记录和存储您所能做的一切,并能够从该数据集合中调出相关信息并呈现出来。第一次做对。板子很容易变砖,在板子报废之前,垫子只能处理多次返工。最简单的解决方案是不要犯错误。能够创建测试和测试装置,以减少导致故障的人为错误。如果您在工作中无法管理自己的人为错误,您将如何减少与生产测试相关的人为错误?有能力和勇气捍卫和证明你对问题/解决方案/测试方法的信念。例如,这里是如何使下一张卡不可积木,每块板的成本是多少,以及它会节省多少开发时间来抵消该成本。

你的问题太开放了,你的开放式问题的答案是你需要学习可以在打印电路板上或连接到打印电路板的所有东西。您需要能够舒适地在最低级别进行编程。所以完全理解 digikey、mouser 等的每个数据表。能够对这些部分中的每一个、所有编译器等进行编程。如果你缩小问题范围,我们可以给出更容易理解的答案。

关于embedded - 学习电路板启动和硬件诊断的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7130017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com