i.MX6UL添加GPIO的方法基于飛凌嵌入式OKMX6UL開發(fā)板_第1頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、i.mx6ul添加gpio的方法基于飛凌嵌入式okmx6ul開發(fā)板注:i.mx6ul添加gpio辦法,用法平臺為飛凌okmx6ul-c開發(fā)板,其它平臺可參考用法 i.mx6ul開發(fā)板細節(jié) 辦法一:采納iomux的辦法在設(shè)備樹中iomux中添加復(fù)用gpio引腳如下,詳細設(shè)置的上下拉,驅(qū)動能力,查找i.mx6ul cpu手冊,對應(yīng)修改。 比如mx6ul_pad_csi_data00_gpio4_io21 0x3008mx6ul_pad_csi_data01_gpio4_io22 0x1f0b1mx6ul_pad_csi_data02_gpio4_io23 0x1f0b1mx6ul_pad_csi_

2、data03_gpio4_io24 0x1f0b1 mx6ul_pad_snvs_tamper9_gpio5_io09 0x1f0b1mx6ul_pad_snvs_tamper8_gpio5_io08 0x1f0b1mx6ul_pad_jtag_tdo_gpio1_io12 0x1f0b1 同時修改設(shè)備樹文件中(其他地方復(fù)用引腳) 編譯設(shè)備樹。替換飛凌imx6ul開發(fā)板中所用設(shè)備樹。 此時可以用法echo指令舉行控制:指令為:echo $i /sys/class/gpio/export echo out /sys/class/gpio/gpio$i/direction或echo in /sys

3、/class/gpio/gpio$i/direction echo 1 /sys/class/gpio/gpio$i/valueecho 0 /sys/class/gpio/gpio$i/value echo $i /sys/class/gpio/unexport 以控制gpio4_io22為例:1. 計算對應(yīng)sys/class/gpio的值gpion_iox = (n-1)*32 + xgpio4_io22=(4-1)*32+22=1182. 將gpio4_io22設(shè)置為輸出。echo 118 /sys/class/gpio/export用于通知系統(tǒng)需要導(dǎo)出控制的gpio引腳編號echo o

4、ut /sys/class/gpio/gpio118/direction 控制為輸出echo 1 /sys/class/gpio/gpio118/value 輸出為高電平或者echo 0 /sys/class/gpio/gpio118/value輸出為低電平echo 118 /sys/class/gpio/unexport 通知系統(tǒng)取消導(dǎo)出3. 將gpio4_io22設(shè)置為輸入。echo 118 /sys/class/gpio/export用于通知系統(tǒng)需要導(dǎo)出控制的gpio引腳編號echo in /sys/class/gpio/gpio118/direction 控制為輸入這時給該引腳接高電平

5、,輸入即為高電平,反之為低電平echo 118 /sys/class/gpio/unexport 通知系統(tǒng)取消導(dǎo)出4. 另外客戶可以自己通過shell文件來控制gpio做為輸入或者輸出。4.1 gpio輸出測試編寫測試腳本 vi gpiotest_o.sh!/bin/bash gpio list gpio (bank-1)*32 + nr for test in 118 119 120 137 136 12doecho exporting pin $test.echo $test /sys/class/gpio/exportecho setting pin $1.echo out /sys/c

6、lass/gpio/gpio$test/directionecho $1 /sys/class/gpio/gpio$test/valueecho $test /sys/class/gpio/unexportdoneecho complete 修改腳本執(zhí)行權(quán)限:chmod u+x gpiotest_o.sh測試gpio輸出為低。進入到腳本所在路徑:./gpiotest_o.sh 0全部gpio輸出低電平 0v。測試gpio輸出為高電平。進入到腳本所在路徑:./gpiotest_o.sh 1全部gpio輸出高電平。輸出的高電平,按照引腳所在的電源域不同,可能會有區(qū)分。 另外有些客戶發(fā)覺echo 1

7、18 /sys/class/gpio/export用于通知系統(tǒng)需要導(dǎo)出控制的gpio引腳編號echo out /sys/class/gpio/gpio118/direction 控制為輸出echo 1 /sys/class/gpio/gpio118/value 輸出為高電平cat /sys/class/gpio/gpio118/value 照舊為0緣由如下圖所示,客戶可以從cpu手冊中查找到相關(guān)內(nèi)容: 輸入模式讀取的是psr的值。 讀取output的value值是從psr中讀取的。而寫入output值是寫入到dr中的??梢酝ㄟ^設(shè)置sion位回環(huán)。 4.2 gpio輸入測試編寫測試腳本 vi g

8、piotest_i.sh!/bin/bash gpio list gpio (bank-1)*32 + nr for test in 118 119 120 137 136 12doecho exporting pin $test.echo $test /sys/class/gpio/exportecho in /sys/class/gpio/gpio$test/directiongpioval=cat /sys/class/gpio/gpio$test/valueecho gpio $test = $gpiovalechoecho $test /sys/class/gpio/unexport

9、doneecho complete 修改腳本執(zhí)行權(quán)限:chmod u+x gpiotest_i.sh測試gpio輸入為低。進入到腳本所在路徑:./gpiotest_i.sh 全部gpio輸入為 0。 測試gpio輸入為高電平,比如5v。進入到腳本所在路徑:./gpiotest_i.sh全部gpio輸入為1。(假如為非零值,是由于讀取對應(yīng)的位為1,可以修改內(nèi)核源碼中drivers/gpio/gpio-generic.c文件,將其中中bgpio_get函數(shù)中return bgc-read_reg(bgc-reg_dat) & bgc-pin2mask(bgc, gpio);修改為return !(

10、bgc-read_reg(bgc-reg_dat) & bgc-pin2mask(bgc, gpio);修改之后,value值為1) iomuxcshelldiin-test.sh,復(fù)制到forlinx(比如)名目下./in-test.sh 118iomuxcshelldoclose.sh,復(fù)制到forlinx(比如)名目下./close.sh 118iomuxcshelldoopen.sh,復(fù)制到forlinx(比如)名目下./open.sh 118或者采納iomuxcwrite-117-out-hightest,復(fù)制到forlinx(比如)名目下./test 將gpio 117輸出為高。辦

11、法二:創(chuàng)建dev/gpio節(jié)點。1、在設(shè)備樹文件中添加設(shè)備節(jié)點定義以及其引腳定義: 并將其他復(fù)用引腳對應(yīng)的功能disabed,保證這些引腳沒被重復(fù)定義用法。引腳的pinmux可以查看imx6ul-pinfunc.h文件。 2、在driver/misc/gpio名目下添加gpio驅(qū)動gpio-user.c,名字需要與節(jié)點定義里的驅(qū)動名字保持相同,客戶也可以自己寫驅(qū)動。同時添加kconfig和makefile文件。修改driver/misc下kconfig和makefile文件:在driver/misc/makefile 中添加:obj-y += gpio/編輯driver/misc/kconfig, 添加一行:source drivers/misc/gpio/kconfig, 在根名目下修改linux_imx6ul_config文件,添加:config_gpio_user_intf=y3、編譯。make zimagemake arch=arm cross_compile=arm-fsl-linux-gnueabi- dtbs 4、拷貝前面生成的zimage, imx6ul-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論