小樣兒老師:我的嵌入式學(xué)習(xí)之路(一)

???? 微博: 小樣兒老師2015

關(guān)于

嚴(yán)格來說,本文題目應(yīng)該是我的單片機(jī)、DSP和ARM+Linux學(xué)習(xí)之路,但這個(gè)寫法實(shí)在太繞口——況且嵌入式往往暗指MCU,DSP,ARM等微處理器加上嵌入式操作系統(tǒng),所以我認(rèn)為本文題目是合理的。

這篇文章講了什么?

???? 我這些年學(xué)單片機(jī)、DSP和ARM+Linux的總結(jié)。

???? 一些不錯(cuò)的書籍和教程。

初學(xué)

第一次接觸單片機(jī)是在大一下學(xué)期,當(dāng)時(shí)和一同學(xué)腦洞大開要做一個(gè)世界上最輕的可折疊便攜電動(dòng)車——折疊好放在包里扛著就走的那種,靠著扯犢子的本事通過了學(xué)校的創(chuàng)新創(chuàng)業(yè)項(xiàng)目立項(xiàng),還給撥了經(jīng)費(fèi),分了實(shí)驗(yàn)室,實(shí)驗(yàn)室的指導(dǎo)老師讓學(xué)習(xí)51單片機(jī),由于當(dāng)時(shí)正忙著給淘寶開放平臺(tái)開發(fā)一個(gè)給淘寶賣家使用的平臺(tái)軟件,天天抱著一堆PHP開發(fā)的書再看,老師的話被傻逼的我扔在了一邊。

直到后來電動(dòng)車項(xiàng)目要開始動(dòng)手——而且經(jīng)過前一段時(shí)間的折騰證明了我以后還得靠嵌入式混飯吃,恍然發(fā)現(xiàn)我對(duì)于它的了解幾乎為零,于是我給自己制定了一個(gè)類似于建國(guó)初期五年計(jì)劃的讀書學(xué)習(xí)計(jì)劃,向當(dāng)時(shí)我認(rèn)為很牛的學(xué)長(zhǎng)和大神請(qǐng)教,選擇了一些靠譜的書籍和教程

新概念51單片機(jī)C語(yǔ)言教程


新概念51單片機(jī)C語(yǔ)言教程是我學(xué)習(xí)單片機(jī)的第一本書,從網(wǎng)上找了十天學(xué)會(huì)51單片機(jī)的視頻,懷著激動(dòng)的心情開始了學(xué)習(xí),看了一周發(fā)現(xiàn)完全沒有效果,并且書里一直在講一定要有硬件平臺(tái)進(jìn)行練習(xí),要親自動(dòng)手去做,花了100多塊大洋買了和視頻書籍配套的學(xué)習(xí)板,開始把書中講解的代碼依次敲了一邊,編譯調(diào)試無錯(cuò)誤,下載進(jìn)學(xué)習(xí)板看現(xiàn)象,不理解的地方就反復(fù)研讀,有錯(cuò)誤就反復(fù)調(diào)試,上網(wǎng)找解決辦法,后來證明很多錯(cuò)誤都是不細(xì)心造成的輸入錯(cuò)誤。通過這本書和配套視頻的學(xué)習(xí),單片機(jī)總算是入了門。

新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)


新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)是用匯編寫的一本書,可以當(dāng)做工具書來用,查詢配置51單片機(jī)常用的一些寄存器。通俗點(diǎn)說它用更易于初學(xué)者理解的語(yǔ)言講解了51單片機(jī)的數(shù)據(jù)手冊(cè)。曾經(jīng)有人問我學(xué)單片機(jī)有沒有必要學(xué)匯編,我的答案是完全沒必要,C語(yǔ)言就夠了,現(xiàn)在技術(shù)的發(fā)展已經(jīng)有支持高級(jí)語(yǔ)言C++開發(fā)的編譯器了,并且使用匯編開發(fā)的效率極低,可移植性差。

單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航

如果說新概念51單片機(jī)C語(yǔ)言教程是用于入門的書籍,那單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航可作為單片機(jī)進(jìn)階的書籍來看,書中的很多實(shí)例可以拿來直接使用于項(xiàng)目中。并且此書還提供源碼供參考,提高自己的工程應(yīng)用水平,此書值得一讀。我的電動(dòng)車項(xiàng)目中用到的一部分源碼就是來源于此。

? 借助這個(gè)讀書學(xué)習(xí)成長(zhǎng)計(jì)劃,我出色的完成了創(chuàng)新項(xiàng)目,作品被學(xué)校買走收藏,并且被系主任邀請(qǐng)進(jìn)入他的創(chuàng)新實(shí)驗(yàn)室,當(dāng)然這是后話。

編程語(yǔ)言的學(xué)習(xí)

嵌入式的學(xué)習(xí)是以C語(yǔ)言為核心的,無論是裸機(jī)程序,驅(qū)動(dòng)程序,還是嵌入式操作系統(tǒng),都是使用C語(yǔ)言進(jìn)行的開發(fā),少數(shù)涉及到使用C++,深厚的C語(yǔ)言功底是學(xué)習(xí)嵌入式必不可少的。

8051系列單片機(jī)C程序設(shè)計(jì)完全手冊(cè)


用于嵌入式開發(fā)的C語(yǔ)言跟通常使用的C語(yǔ)言還是有一點(diǎn)點(diǎn)區(qū)別的,但都大同小異,8051系列單片機(jī)C程序設(shè)計(jì)完全手冊(cè)除了能讓你了解用于單片機(jī)C語(yǔ)言之外,還講解了所有應(yīng)用于單片機(jī)的庫(kù)函數(shù),合理的使用庫(kù)函數(shù)能提升開發(fā)效率。

C和指針

C語(yǔ)言的精華所在就是指針,對(duì)于C語(yǔ)言初學(xué)者,最難得概念不僅僅是指針和數(shù)組,還有指向數(shù)組的指針和指向指針的指針,C和指針花了大量的篇幅和圖示來把這些難懂的概念講的清清楚楚。

C 陷阱與缺陷


書如其名,這本書介紹了 C 語(yǔ)言中常見的坑和一些稀奇古怪的編程“技巧”,不少刁鉆的C語(yǔ)言面試題都源自這本小冊(cè)子。

C專家編程


不要被標(biāo)題中的“專家”嚇到,這實(shí)際是一本很輕松的書籍,它既包含了大量 C 語(yǔ)言技術(shù)細(xì)節(jié)和編程技巧,也包含了很多有趣的編程軼事。

學(xué)習(xí)設(shè)計(jì)PCB

做嵌入式開發(fā),硬件平臺(tái)的設(shè)計(jì)是第一步,學(xué)習(xí)PCB設(shè)計(jì)沒有什么好辦法,看書,然后必須大量練習(xí),畫板,投板,在實(shí)踐中去慢慢理解體會(huì),初次接觸做PCB是進(jìn)入創(chuàng)新實(shí)驗(yàn)室,根據(jù)學(xué)長(zhǎng)留下的視頻教程算是入了門,使用的軟件是Altium Desigder 09,但是視頻教程講解的是DXP2004,Altium Desigder 09是DXP2004的升級(jí)版本軟件,視頻作為入門還是足夠用的。我會(huì)在下面放上視頻的連接,可自行下載。

鏈接:

https://pan.baidu.com/s/1jInXl5s 密碼: ui2q

?Altium Designer PCB畫板速成


Altium Designer PCB畫板速成是由一線的PCB工程師寫的一本書,實(shí)踐性極強(qiáng),可作為PCB設(shè)計(jì)的進(jìn)階書籍來使用。

Altium Designer Winter 09電路設(shè)計(jì)與仿真教程


Altium Designer Winter 09電路設(shè)計(jì)與仿真教程也是一本PCB進(jìn)階書籍,入了門之后的路就只能靠自己了,常言道師傅領(lǐng)進(jìn)門,修行在個(gè)人。多看書,多實(shí)踐??佳袕?fù)試時(shí)曾吹噓自己懂PCB設(shè)計(jì)以至于讀研期間導(dǎo)師讓我承包了實(shí)驗(yàn)室大部分PCB設(shè)計(jì)的工作。

如何看數(shù)據(jù)手冊(cè)Datasheet

學(xué)會(huì)看芯片手冊(cè)是嵌入式工程師必備的技能,不管什么芯片手冊(cè),英文的還是中文的,都只是使用說明書而已。而說明書一個(gè)最顯著的特點(diǎn)就是必須盡可能地使用通俗易懂的語(yǔ)句,向使用者交代清楚該產(chǎn)品的特點(diǎn)、功能以及使用方法。如果是英文手冊(cè),運(yùn)用在大學(xué)里所學(xué)到的那些英文知識(shí)去分析這些手冊(cè),足矣。

Datasheet閱讀步驟及要領(lǐng)

①先看看芯片的特性(Features)、應(yīng)用場(chǎng)合(Applications)以及內(nèi)部框圖。先做一個(gè)宏觀的了解,此時(shí)需要弄清楚該芯片的一些比較特殊的功能,充分利用芯片的特殊功能,對(duì)整體電路的設(shè)計(jì),將會(huì)有極大的好處。比如AD9945可以實(shí)現(xiàn)相關(guān)雙采樣(CDS),這可以簡(jiǎn)化后續(xù)信號(hào)調(diào)理電路,并且抵抗噪聲的效果還好

②重點(diǎn)關(guān)注芯片的參數(shù),同時(shí)可以參考手冊(cè)給出的一些參數(shù)圖(如AD9945的TPC

1,TPC2等),這是我們是否采用該芯片的重要依據(jù)。像AD9945,可關(guān)注采樣率(maximum clock

rate)、數(shù)據(jù)位數(shù)(AD converter)、功耗(Power

consumption)、可調(diào)增益范圍(gain range)等

③選定器件后,研究芯片管腳定義、推薦的PCB layout,這些都是在硬件設(shè)計(jì)過程中必須掌握的。所有管腳中,要特別留意控制信號(hào)引腳或者特殊信號(hào)引腳,這是將來用好該芯片的前提。比如AD9945的SHP、SHD、PBLK、CLPOB等

④認(rèn)真研讀芯片內(nèi)部寄存器,對(duì)寄存器的理解程度,直接決定了你對(duì)該芯片的掌握程度。比如AD9945就有4個(gè)寄存器:Operation、Control、Clamp

Level和VGA gain,對(duì)于這些寄存器,必須清楚它們上電后的初始值、所能實(shí)現(xiàn)的功能、每個(gè)bit所代表的含義這些基本情況

⑤仔細(xì)研究手冊(cè)給出的時(shí)序圖,這是對(duì)芯片進(jìn)行正確操作的關(guān)鍵。單個(gè)信號(hào)的周期、上升時(shí)間、下降時(shí)間、建立時(shí)間、保持時(shí)間,以及信號(hào)之間的相位關(guān)系,所有這些都必須研究透徹。像AD9945的Figure

8 和Figure 9 就很值得花費(fèi)時(shí)間去仔細(xì)研究

特別提示:

凡是芯片數(shù)據(jù)手冊(cè)中的“note”,都必須仔細(xì)閱讀,一般這都是能否正確使用、或能否把芯片用好的關(guān)鍵之所在。

歸納:

第一:先找個(gè)有中文版本手冊(cè)的芯片,把中英文對(duì)照著看,熟悉英文手冊(cè)的描述風(fēng)格

第二:仔細(xì)看看芯片的原理框圖,弄明白他的內(nèi)部結(jié)構(gòu),都哪些功能電路,該芯片能實(shí)現(xiàn)哪些功能

第三:重點(diǎn)關(guān)注芯片的參數(shù),這是你是否選用該芯片的重要參考

第四:選定器件后,看看管腳定義、推薦的PCB layout,這是在作硬件電路設(shè)計(jì)時(shí)必須掌握的

第五:認(rèn)真研讀芯片內(nèi)部寄存器,對(duì)寄存器的理解程度,直接決定了你對(duì)該芯片的掌握程度

(未完待續(xù)………..)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 姓名:吳兆陽(yáng) 學(xué)號(hào):14020199009 轉(zhuǎn)自韋東山 嵌牛導(dǎo)讀:對(duì)嵌入式初學(xué)者,沒有足夠的視野選擇一個(gè)合適投入方...
    吳兆陽(yáng)閱讀 2,520評(píng)論 0 4
  • 漫談可編程芯片 - 單片機(jī)DIY制作 單片機(jī)論壇 寫在前面:很多朋友都問我做的是什么東西,我說單片機(jī),但是大部分人...
    augustar閱讀 3,012評(píng)論 0 5
  • 學(xué)習(xí)stm32gpio 學(xué)習(xí)linux 程序員的三大方向 程序員的方向,一般可以分為3類:專業(yè)領(lǐng)域、業(yè)務(wù)領(lǐng)域、操作...
    王公民閱讀 961評(píng)論 0 3
  • 出來混的,遲早要還的?!罄踔伦约?畢業(yè)季即將到來。又是一年求職時(shí)啊。每一個(gè)求職者都對(duì)面試過程中談薪水這件事不太...
    有杕之杜閱讀 764評(píng)論 7 8
  • 和朋友唱K 最核心的事就是分享各自的歌曲 然后討論每個(gè)歌手的境況 因?yàn)橐矡o法安靜的聊天 一直喝酒也不是辦法 專注于...
    米有人先森閱讀 120評(píng)論 0 0

友情鏈接更多精彩內(nèi)容