• 微博: 小樣兒老師2015 關於 嚴格來說,本文題目應該是我的單片機、DSP和ARM+Linux學習之路,但這個寫法實在太繞口——況且嵌入式往往暗指MCU,DSP,ARM等微處理器加上嵌入式操作系統,所以我認為本文題目是合理的。 這篇文章講了什麼? • 我這些年學單片機、DSP和ARM+Linu ...
• 微博: 小樣兒老師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,這是在作硬體電路設計時必須掌握的
第五:認真研讀晶元內部寄存器,對寄存器的理解程度,直接決定了你對該晶元的掌握程度
(未完待續………..)