2011/06/10

[Linux] Linux 上的 GPIO / I2C 實作筆記之一

什麼是 GPIO ?
全稱是 "General Purpose I/O"。General Purpose ,就是用途不限。 Input / Output 指的是拉電位高低,Hardware 上的電位高低是以電壓值的範圍來規範,下面 DataSheet 中提供的電位表:

依循這個規則,我們可以指揮 SoC 的暫存器作工在 PIN 腳上,讓這些 PIN 腳電位 [輸出|輸入] + [拉高|拉低] 來達成我們的要求。

既然是要 SoC 的暫存器工作,就可以看 SoC 的範本怎麼工作,我們依樣畫葫蘆就可以。
例如:
我們可以在 ./arch/mips/ar7240/gpio.c 裡面找到 ar7240 的 wpa, wps led, factory reset button 的 gpio ,就照抄這些 function call 去工作。

ar7240_gpio_out_val (WPS_LED_GPIO, WPS_LED_ON);
ar7240_gpio_out_val (WPS_LED_GPIO, WPS_LED_OFF);


呼叫時代入的參數,因為 gpio 是代入 PIN 腳的號碼,所以一次動作只有一個 bit(0|1) ,要特別小心注意自已代入的值是什麼。

--
參考資料:
* 維基百科上的說明 http://zh.wikipedia.org/wiki/GPIO
* 我所知道的 GPIO http://kezeodsnx.pixnet.net/blog/post/30257192
* http://www.microchipc.com/sourcecode/#PIC18LF4550_LCD_temp_sensor
* I2C 介紹 http://www.youtube.com/watch?list=PLB1BE22BA36431CFD&feature=player_embedded&v=BcWixZcZ6JY

沒有留言:

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...