Nanopim1gpio 口的使用筆記

Nanopim1gpio口的使用筆記

 

Nanopi m1並未提供pythonlib,但是m2才提供,在pythongpio lib中測試,會遇到各種問題

1nanopi的介紹

NanoPi M1資源特性:

• CPUAllwinnerH3, Quad-core [email protected]

• GPUMali400MP2@600MHzSupports OpenGL ES2.0

• DDR3 RAM512MB/1GB

網絡:10/100M以太網

音頻:3.5mm耳機座/Via HDMI

麥克風:板載麥克風

紅外:板載紅外接收模塊

• USB HostType A型號,USB 2.0 x 3

• MicroSD Slotx1

• MicroUSB:支持供電和數據傳輸,有OTG功能

視頻輸出: HDMI 1.41080P高清顯示, CVBS

• DVP Camera接口:24pin0.5mm間距豎直貼片FPC

調試串口:4Pin2.54mm排針

• GPIO 40pin,2.54mm間距,兼容RasberryPi2的擴展GPIO,含UART, SPI, I2C, PWM, IO等管腳資源

按鍵:電源按鍵x1,復位按鍵x1

•PC Size: 64 x 50mm

•Power Supply: DC 5V/2A

• OS/Software: u-bootDebianUbuntu-MATEUbuntu-Core

2gpio的使用

  • gpio介紹
    • 在嵌入式設備中對GPIO的操作,一般的做法是寫一個單獨驅動程序。其實linux下面有一個通用的GPIO操作接口,那就是“/sys/class/gpio”方式。使用這種方法,你不需要寫驅動,直接調用gpio引腳,更方便開發,內核更小。
  • 操作過程
    • Terminal中查看當前系統中有沒有“/sys/class/gpio”這個文件夾。如果沒有請在編譯內核的時候加入Device Drivers —> GPIO Support —> /sys/class/gpio/… (sysfs interface)。
    • GPIO XX中引腳編號的計算
      • 引腳編號=控制引腳的寄存器基數+控制引腳寄存器位數;
      • 當前使用的nanopi m132爲的寄存器位數
        • eg: GPIOB10那麼引腳編號爲=32*1+10=42
    • GPIO命令介紹
      • 對於用戶層而言,如果我們需要使用那個GPIOXX口,我們只需要使用以下簡單的指令就可以
        • echo xx > /sys/gpio/export #文件用於通知系統需要導出控制的GPIO引腳編號
        • 如果當前目錄爲 /sys/class/export
        • 還可以使用 echo xx >export
        • 注:在自己的測試過程中,會遇到權限不夠到的問題,當時解決的方式是
          • su
          • "Enter your password"
          • sudo echo xx >/sys/gpio/export
        • 如果成功,在當前目錄下應該生成了一個名稱爲“gpioXX”的目錄
          • 可以通過cd gpioXX進入此目錄,使用ls指令可以查看當前目錄下的文件
          • 大概包含了下圖所示的文件

                                                           

  • echo xx > /sys/gpio/unexport #文件用於通知系統取消導出控制的GPIO引腳編號
  • 在新建的文件下允許我們控制引腳的輸入/輸出模式,要把引腳設置爲輸入或者輸出,只需要簡單實用以下命令即可 direction可以接受四個參數"in","out","high","low"
    • echo "out" > /sys/class/gpio/gpioXX/direction
    • echo "in" > /sys/class/gpio/gpioXX/direction
    • 在實際測試中,發現在設置爲輸出模式時,並不需要使用“echo "out" > /sys/class/gpio/gpioXX/direction”指令,只需要使用
      • echo "high" > /sys/class/gpio/gpioXX/direction
      • echo "low" > /sys/class/gpio/gpioXX/direction
      • 只需要使用以上指令即可
    • 讀寫控制
      • 讀控制
        • 在設置爲輸出模式時,可以通過以下指令通過GPIO讀取當前端口的值
        • cat /sys/class/gpio/gpioXX/value
      • 寫控制
        • 注:起初,我認爲和讀控制一致,即改變value的值,但是在測試過程中,並沒有效果,最後使用上面的的direction可以達到效果
        • echo "high" > /sys/class/gpio/gpioXX/direction
        • echo "low" > /sys/class/gpio/gpioXX/direction
  • 當我們不需要使用XX端口時,我們可以使用命令
    • echo  xx > /sys/gpio/unexport
注:鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章