小样儿老师:我的嵌入式学习之路(一)
• 微博: 小样儿老师2015
关于
严格来说,本文题目应该是我的单片机、DSP和ARM+Linux学习之路,但这个写法实在太绕口——况且嵌入式往往暗指MCU,DSP,ARM等微处理器加上嵌入式操作系统,所以我认为本文题目是合理的。
这篇文章讲了什么?
• 我这些年学单片机、DSP和ARM+Linux的总结。
• 一些不错的书籍和教程。
初学
第一次接触单片机是在大一下学期,当时和一同学脑洞大开要做一个世界上最轻的可折叠便携电动车——折叠好放在包里扛着就走的那种,靠着扯犊子的本事通过了学校的创新创业项目立项,还给拨了经费,分了实验室,实验室的指导老师让学习51单片机,由于当时正忙着给淘宝开放平台开发一个给淘宝卖家使用的平台软件,天天抱着一堆PHP开发的书再看,老师的话被傻逼的我扔在了一边。
直到后来电动车项目要开始动手——而且经过前一段时间的折腾证明了我以后还得靠嵌入式混饭吃,恍然发现我对于它的了解几乎为零,于是我给自己制定了一个类似于建国初期五年计划的读书学习计划,向当时我认为很牛的学长和大神请教,选择了一些靠谱的书籍和教程
新概念51单片机C语言教程
新概念51单片机C语言教程是我学习单片机的第一本书,从网上找了十天学会51单片机的视频,怀着激动的心情开始了学习,看了一周发现完全没有效果,并且书里一直在讲一定要有硬件平台进行练习,要亲自动手去做,花了100多块大洋买了和视频书籍配套的学习板,开始把书中讲解的代码依次敲了一边,编译调试无错误,下载进学习板看现象,不理解的地方就反复研读,有错误就反复调试,上网找解决办法,后来证明很多错误都是不细心造成的输入错误。通过这本书和配套视频的学习,单片机总算是入了门。
新编MCS-51单片机应用设计
新编MCS-51单片机应用设计是用汇编写的一本书,可以当做工具书来用,查询配置51单片机常用的一些寄存器。通俗点说它用更易于初学者理解的语言讲解了51单片机的数据手册。曾经有人问我学单片机有没有必要学汇编,我的答案是完全没必要,C语言就够了,现在技术的发展已经有支持高级语言C++开发的编译器了,并且使用汇编开发的效率极低,可移植性差。
单片机典型模块设计实例导航
如果说新概念51单片机C语言教程是用于入门的书籍,那单片机典型模块设计实例导航可作为单片机进阶的书籍来看,书中的很多实例可以拿来直接使用于项目中。并且此书还提供源码供参考,提高自己的工程应用水平,此书值得一读。我的电动车项目中用到的一部分源码就是来源于此。
借助这个读书学习成长计划,我出色的完成了创新项目,作品被学校买走收藏,并且被系主任邀请进入他的创新实验室,当然这是后话。
编程语言的学习
嵌入式的学习是以C语言为核心的,无论是裸机程序,驱动程序,还是嵌入式操作系统,都是使用C语言进行的开发,少数涉及到使用C++,深厚的C语言功底是学习嵌入式必不可少的。
8051系列单片机C程序设计完全手册
用于嵌入式开发的C语言跟通常使用的C语言还是有一点点区别的,但都大同小异,8051系列单片机C程序设计完全手册除了能让你了解用于单片机C语言之外,还讲解了所有应用于单片机的库函数,合理的使用库函数能提升开发效率。
C和指针
C语言的精华所在就是指针,对于C语言初学者,最难得概念不仅仅是指针和数组,还有指向数组的指针和指向指针的指针,C和指针花了大量的篇幅和图示来把这些难懂的概念讲的清清楚楚。
C 陷阱与缺陷
书如其名,这本书介绍了 C 语言中常见的坑和一些稀奇古怪的编程“技巧”,不少刁钻的C语言面试题都源自这本小册子。
C专家编程
不要被标题中的“专家”吓到,这实际是一本很轻松的书籍,它既包含了大量 C 语言技术细节和编程技巧,也包含了很多有趣的编程轶事。
学习设计PCB
做嵌入式开发,硬件平台的设计是第一步,学习PCB设计没有什么好办法,看书,然后必须大量练习,画板,投板,在实践中去慢慢理解体会,初次接触做PCB是进入创新实验室,根据学长留下的视频教程算是入了门,使用的软件是Altium Desigder 09,但是视频教程讲解的是DXP2004,Altium Desigder 09是DXP2004的升级版本软件,视频作为入门还是足够用的。我会在下面放上视频的连接,可自行下载。
链接:
https://pan.baidu.com/s/1jInXl5s 密码: ui2q
Altium Designer PCB画板速成
Altium Designer PCB画板速成是由一线的PCB工程师写的一本书,实践性极强,可作为PCB设计的进阶书籍来使用。
Altium Designer Winter 09电路设计与仿真教程
Altium Designer Winter 09电路设计与仿真教程也是一本PCB进阶书籍,入了门之后的路就只能靠自己了,常言道师傅领进门,修行在个人。多看书,多实践。考研复试时曾吹嘘自己懂PCB设计以至于读研期间导师让我承包了实验室大部分PCB设计的工作。
如何看数据手册Datasheet
学会看芯片手册是嵌入式工程师必备的技能,不管什么芯片手册,英文的还是中文的,都只是使用说明书而已。而说明书一个最显著的特点就是必须尽可能地使用通俗易懂的语句,向使用者交代清楚该产品的特点、功能以及使用方法。如果是英文手册,运用在大学里所学到的那些英文知识去分析这些手册,足矣。
Datasheet阅读步骤及要领:
①先看看芯片的特性(Features)、应用场合(Applications)以及内部框图。先做一个宏观的了解,此时需要弄清楚该芯片的一些比较特殊的功能,充分利用芯片的特殊功能,对整体电路的设计,将会有极大的好处。比如AD9945可以实现相关双采样(CDS),这可以简化后续信号调理电路,并且抵抗噪声的效果还好
②重点关注芯片的参数,同时可以参考手册给出的一些参数图(如AD9945的TPC
1,TPC2等),这是我们是否采用该芯片的重要依据。像AD9945,可关注采样率(maximum clock
rate)、数据位数(AD converter)、功耗(Power
consumption)、可调增益范围(gain range)等
③选定器件后,研究芯片管脚定义、推荐的PCB layout,这些都是在硬件设计过程中必须掌握的。所有管脚中,要特别留意控制信号引脚或者特殊信号引脚,这是将来用好该芯片的前提。比如AD9945的SHP、SHD、PBLK、CLPOB等
④认真研读芯片内部寄存器,对寄存器的理解程度,直接决定了你对该芯片的掌握程度。比如AD9945就有4个寄存器:Operation、Control、Clamp
Level和VGA gain,对于这些寄存器,必须清楚它们上电后的初始值、所能实现的功能、每个bit所代表的含义这些基本情况
⑤仔细研究手册给出的时序图,这是对芯片进行正确操作的关键。单个信号的周期、上升时间、下降时间、建立时间、保持时间,以及信号之间的相位关系,所有这些都必须研究透彻。像AD9945的Figure
8 和Figure 9 就很值得花费时间去仔细研究
特别提示:
凡是芯片数据手册中的“note”,都必须仔细阅读,一般这都是能否正确使用、或能否把芯片用好的关键之所在。
归纳:
第一:先找个有中文版本手册的芯片,把中英文对照着看,熟悉英文手册的描述风格
第二:仔细看看芯片的原理框图,弄明白他的内部结构,都哪些功能电路,该芯片能实现哪些功能
第三:重点关注芯片的参数,这是你是否选用该芯片的重要参考
第四:选定器件后,看看管脚定义、推荐的PCB layout,这是在作硬件电路设计时必须掌握的
第五:认真研读芯片内部寄存器,对寄存器的理解程度,直接决定了你对该芯片的掌握程度
(未完待续………..)