嵌入式學習筆記之GPIO 點亮乙個LED

2021-10-04 08:44:25 字數 3114 閱讀 1524

目錄

點亮led:

如何點亮乙個led:

led驅動方式:

2440啟動流程和gpio操作:

啟動流程介紹:

nor啟動:

nand 啟動:

gpio介面介紹:

gpxcon暫存器

gpxdat暫存器

gpxup暫存器

怎麼使用軟體訪問硬體:

訪問單個引腳

以匯流排方式訪問硬體

點亮led:

暫存器配置:

檢視原理圖,確定控制led的引腳

看主晶元的晶元手冊,確定如何設定控制這個引腳

寫程式led電路中通常為了保護led會加電阻減小電流,用晶元引腳控制電路通斷的時候,如果引腳驅動能力不足,(有的晶元為了省電,其引腳一般輸出1.2v,可以輸出的電流小於led的工作電流)這時可用三極體驅動:

有倆種方式:

假設三極體正常工作於放大區,vcc為5v,晶元輸出1.2v,當晶元輸出高電平時,基極到發射極通,三極體通路,led亮,反之led滅.這種方式是led輸出高電平的時候led亮.

這種方式較為複雜,但是和上面分析一樣,當晶元輸出低電平時候,也就是0,三極體1是斷路的,於是1腳的電壓就是vcc也就是5v,接下來分析就和上面一樣這樣三極體2也就短路,正常工作,led亮.這種方式是晶元輸出低電平的時候led亮

/下圖是使用的2440系統框架

啟動可以分為nor啟動和nand啟動,一一介紹:

nor flash的基位址為0,片內ram位址為0x4000 0000;

cpu讀出nor上第乙個指令(前四個位元組),執行

cpu繼續讀出其他指令;

把片內4k ram基位址為零,nor flash不可直接訪問,2440硬體操作將nand前4k內容複製到片內ram中,然後cpu從0位址取出第一條指令,執行.後4k內容可以通過操作讀取

gpio (general purpose i/o ports)即通用輸入/輸出埠,就是一些可以輸出高低電平或者可以讀出這些引腳的電平的引腳;

s3c2440有130個i/o口,分為a-j 九組:gpa, gpb,…gpj,可以通過設定暫存器來確定某個引腳用於輸入,輸出,還是一些其他功能,比如: gph6可以作為一般的輸入,輸出引腳,還可以用於串列埠.

通過暫存器來操作gpio引腳:

設定大多相似:gpxon 用於選擇引腳功能,gpxat用於讀/寫引腳資料, 另外gpxup用於確定是都使用內部上拉電阻..

con-configure配置,也就是用於選擇引腳的功能,

a組和b到j組在功能選擇方面有些不一樣,

gpxcon中的每一位對應一根引腳(共23根引腳),當某一位設定為0時,相應的引腳為輸出功能,然後設定gpxdat中相應為寫入0或者1讓引腳輸出低電平或者高電平:

一般來說是這樣設定的,但是根據晶元手冊可以看出,gpacon對應的引腳設定為1的時候不是設定為輸入功能而是位址控制,或者直接就是位址線,一般來說gpacon 都設定為全1也就是0xffff ffff 用於訪問外部儲存部件.

b-h/j組在暫存器操作方面完全相同,gpxcon中每倆位控制一根引腳: 00-輸入 01-輸出 10-特殊功能 11-保留不用

用於讀寫引腳:當引腳被設為輸入時,讀此暫存器可知相應引腳電平狀態是高還是低;當引腳設為輸出時,寫此暫存器相應位可零此引腳輸出高電平或者低電平.

某位為1時,相應引腳無內部上拉電阻;為零時,對應引腳使用內部上拉電阻.上拉電阻,下拉電阻的作用在於:當gpio口引腳處於高阻態的時候,它的電平狀態是由上拉電阻,下拉電阻確定

高阻態:

在匯流排連線的結構上。匯流排上掛有多個裝置,裝置與匯流排以高阻的形式連線。這樣在裝置不占用匯流排時自動釋放匯流排,以方便其他裝置獲得匯流排的使用權.

大部分微控制器i/o使用時都可以設定為高阻輸入,高阻輸入可以認為輸入電阻是無窮大的,認為i/o對前級影響極小,而且不產生電流(不衰減),而且在一定程度上也增加了晶元的抗電壓衝擊能力

單個引腳的操作無外乎三種:輸出高低電平;檢測引腳狀態,中斷.對你某個引腳的操作一般通過都、寫暫存器來完成。

這種方式控制硬體更加常見:以nor flash的訪問為例

圖中,緩衝器的作用是為了提高驅動能力,隔離前後級訊號。

這裡用組合語言寫:

根據原理圖

d10-gpf4          d11-gpf5      d12-gpf6

led是低電平點亮,於是只需要將對應的引腳配置為輸出引腳,然後配置輸出低電平即可

gpfcon的13-8位設定為010101,即設定為輸出引腳

gpfdat 對應的位置寫0/1輸出即輸出低/高電平

於是彙編可以寫:

2-編譯 3-鏈結 4-生成bin檔案

最後make,將生成的.bin檔案燒到開發板可以看到d10亮

2,嵌入式Linux之GPIO

2,嵌入式linux之gpio 1,點燈 1 看懂你所用的開發板的原理圖 產看led和gpio管腳是怎麼接線的如圖 2 通過s3c2440晶元控制暫存器配置gpf4 gpf5 gpf6為輸入引腳 來點亮 上圖的led燈 檢視s3c2440晶元手冊 3 配置gpio 使得gpf4 gpf5 gpf6 ...

嵌入式之GPIO輸入輸出模式學習筆記

概括來說,io的功能模式大致可以分為輸入 輸出以及輸入輸出雙向三大類。其中作為基本輸入io,相對比較簡單,主要涉及的知識點就是高阻態 作為輸出io,相比與輸入複雜一些,工作模式主要有開漏 open drain 模式和推挽 push pull 模式 對於輸入輸出io,容易產生疑惑的地方是準雙向和雙向埠...

嵌入式裸機GPIO和LED學習筆記

gpio general purpose input output 通用輸入輸出 gpio就是晶元的引腳 晶元上的引腳有些不是gpio,只有一部分是 作為gpio的這類引腳,他的功能和特點是可以被程式設計控制它的工作模式,也可以程式設計控制他的電壓高低等。通過之前的分析我們知道,我們設計電路時就把l...