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


•    微博: 小樣兒老師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,這是在作硬件電路設計時必須掌握的

第五:認真研讀芯片內部寄存器,對寄存器的理解程度,直接決定了你對該芯片的掌握程度

(未完待續………..)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM