学习板边缘和硬件诊断的最佳方法是什么



这是我的背景,我拥有计算机工程硕士学位,我的大部分工作经验都涉及为各种消费电子产品编写设备驱动程序。作为课程的一部分,我已经完成了8051和8086控制器编程。我还做了一些关于汽车硬件功能验证的工作。现在我想转到一个非常低的级别,其中包括闪烁板、通电、引导程序编程、验证板上的各种组件、验证总线、内存等。

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

你肯定需要强大的原理图阅读能力,好的原理图和坏的原理图。

你肯定需要强大的数据表和其他参考手册技能。这些手册中的大多数都有错误,所以你也需要一些黑客技巧。永远不要相信手册,永远不要在没有对硬件进行测试的情况下编写数百或数千行代码。一步一个脚印。有些供应商有很好的文档,有些则很糟糕,比如surf sparkfun和digikey和mouser,可以从不同的供应商那里获得各种东西的数据表。

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

能够阅读verilog和vhdl,编写能力更强。设计的"真正"文档是源代码本身。

操作示波器的能力。可能是你的头号调试工具,既可以找出为什么没有出现问题,也可以开发测试软件和调试软件。

为经常使用的接口开发强大的知识。spi、i2c、mdio、serial等。理想情况下,您应该能够在spi总线上放置一些scope探针,并读取命令和响应。

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

基本的以太网协议和工具,如wireshark或其他类似的协议和工具。如果船上有以太网,你需要打开接口,接收一些数据,将其转储,以便能够解析字节并查看数据包。能够生成简单的数据包,arp,ping,udp。

阅读fat文件系统。sd卡和其他类似的接口使用这个。

学习usb。

学习pci/pcie。

dram

ti的stellaris板上装有外设,试图找出如何与之交谈。

获取beagleboard原理图或开放式rd或plug计算机原理图,研究所有主要组件,dram闪存、sata、以太网、usb等。

哦,没错,一定要学会如何编程eeprom和flash,eeprom正在消亡,但不幸的是,它们彼此之间更加一致。闪存部件,spi,并行,加上每个微控制器都有自定义接口,范围很广。

很难习惯使用jtag。openocd很好,sparkfun的ftdi串行转接板可以用来bit bang jtag,或者几乎任何其他东西。amontek将jtag制作得很小,这对arm或其他平台都有好处。我认为晶格程序员也可以重新调整用途。说到。。。了解fpgas编程和引导的不同方式。同样,如何通过比特敲击一些gpio接口来编程fpga,通常fpga供应商会有一个框架(例如svf播放器),你必须提供后端,这与在openocd上放置后端没有什么不同。一些微控制器系列具有非jtag接口,通常是串行接口,可作为加载/编程芯片的替代方式。

查阅,了解pwm、脉宽调制。

在仿真环境下研究vpi和其他连接测试软件与硬件/hdl的方法,在芯片/逻辑上板之前对其进行测试和编写测试软件可以带来很大的好处。

知道当电容、电阻过大或每个(振铃)都不够时,时钟是什么样子的。知道相声是什么样子的。

能够焊接有帮助。在一个小时内大约第三次闪光之后,你必须解开它,因为你不断地犯软件错误,把板砌成砖,就像那个叫狼来了的男孩一样,你得不到太多帮助。

特别编程,你能更快地启动一个程序/工具,你一天能做的事情就越多。

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

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

学习使用微控制器的嵌入式系统设计将教您如何设计并实现板。尝试http://www.avrfreaks.net/对于一些使用Atmel AVR的项目。还有http://www.sixca.com/,http://www.eevblog.com/和http://www.webring.org/hub/avr

真的,你的问题很广泛,有很多方法可以学习这些东西,但这是我最初的方向,对我来说效果很好

相关内容

最新更新