如何使用 開源硬體Banana PI BPI-R2's GPIO-s
BPI-R2整合MTK7623N 四核 ARM Cortex-A7 MP 支援主頻1.3 ghz,BPI-R2 路由器提供豐富各種外設介面,包括 HDMI TX 高畫質介面, MIPI DSI 屏介面, PCIe2.0 介面, USB2.0 OTG 埠, USB3.0 埠, SATA 埠,5 千兆網口, 板載802.11a/b/g/n wifi 無線& BT4.1藍芽 , 並且透過mini PCI-e支援 802.11ac/n WLAN
BPI-R2 系統支援 Android5.1,並完善支援 OpenWRT,Debian linux,Ubuntu linux, Raspbian 和其他嵌入式作業系統. 尺寸與BPI-R1完全一樣大小, 支援 1080P y高畫質影片輸入,40 PIN GPIO 與 Raspberry Pi 3一致.
同香蕉派其他板一樣,Banana Pi BPI-R2 也有40-pin GPIO 介面:
Banana Pi BPI-R2 的40 PIN GPIO 定義與樹莓派 3 一親,下面是 Banana Pi GPIO定義:
Banana pi BPI-R2 40 PIN GPIO 定義 | |||
GPIO Pin Name | Default Function |
|
|
CON1-P01 | VCC-3V3 |
|
|
CON1-P02 | VCC-5V |
|
|
CON1-P03 | I2C\_SDA0 | GPIO75 |
|
CON1-P04 | VCC-5V |
|
|
CON1-P05 | I2C\_SCL0 | GPIO76 |
|
CON1-P06 | GND |
|
|
CON1-P07 | PWM-003 | GPIO206 |
|
CON1-P08 | UTXD1 | GPIO80 |
|
CON1-P09 | GND |
|
|
CON1-P10 | URXD0 | GPIO81 |
|
CON1-P11 | URXD1 | GPIO80 |
|
CON1-P12 | I2S0\_BCK | GPIO74 |
|
CON1-P13 | UTXD0 | GPIO79 |
|
CON1-P14 | GND |
|
|
CON1-P15 | PWM-002 | GPIO205 |
|
CON1-P16 | URTS1 | GPIO25 |
|
CON1-P17 | VCC-3V3 |
|
|
CON1-P18 | UCTS1 | GPIO24 |
|
CON1-P19 | SPI0\_MO | GPIO56 |
|
CON1-P20 | GND |
|
|
CON1-P21 | SPI0\_MI | GPIO55 |
|
CON1-P22 | PCM\_CLK | GPIO18 |
|
CON1-P23 | SPI0\_CK | GPIO54 |
|
CON1-P24 | SPI0\_CSN | GPIO53 |
|
CON1-P25 | GND |
|
|
CON1-P26 | PCM\_RX | GPIO20 |
|
CON1-P27 | I2C\_SDA1 | GPIO57 |
|
CON1-P28 | I2C\_SCL1 | GPIO58 |
|
CON1-P29 | PCM\_RST | GPIO22 |
|
CON1-P30 | GND |
|
|
CON1-P31 | SPDIF\_OUT | GPIO200 |
|
CON1-P32 | PCM\_TX | GPIO21 |
|
CON1-P33 | I2S0\_MCLK | GPIO126 |
|
CON1-P34 | GND |
|
|
CON1-P35 | I2S0\_LRCK | GPIO73 |
|
CON1-P36 | PCM\_SYNC | GPIO19 |
|
CON1-P37 | SPDIF\_IN1 | GPIO202 |
|
CON1-P38 | I2S0\_DATA\_IN | GPIO72 |
|
CON1-P39 | GND |
|
|
CON1-P40 | I2S0\_DATA\_OUT | GPI049
|
|
有兩種方式使用R2的GPIO-s:
使用除錯介面/sys/devices/platform/1000b000。 pinctrl/mt_gpio,參考指令碼1
使用GPIO的通用介面:/sys/class/ GPIO /export和/sys/class/ GPIO /unexport,請參考指令碼2
Script 1 (it can be used on Ubuntu system with kernel 4.4.x)
--------------------
SYS_FILE=/sys/devices/platform/1000b000.pinctrl/mt_gpio
mt_gpio_mode()
{
pin=$1
mode=$2
if [ ! -f ${SYS_FILE} ]; then
exit 1
fi
echo "mode $pin $mode" > ${SYS_FILE}
return 0
}
mt_gpio_dir()
{
pin=$1
dir=$2
if [ "x${dir}" == "xout" ]; then
dir_val=1
else
dir_val=0
fi
if [ ! -f ${SYS_FILE} ]; then
exit 1
fi
echo "dir $pin $dir_val" > ${SYS_FILE}
return 0
}
mt_gpio_out()
{
pin=$1
out=$2
if [ ! -f ${SYS_FILE} ]; then
exit 1
fi
echo "out $pin $out" > ${SYS_FILE}
return 0
}
mt_gpio_in()
{
pin=$1
if [ ! -f ${SYS_FILE} ]; then
exit 1
fi
echo "start $1" > ${SYS_FILE}
result=`cat ${SYS_FILE} | grep "$1"`
if [ "x${result}" == "x" ]; then
echo "can't get $pin status"
exit 2
fi
echo ${result}
pin_val=`echo ${result} | awk -F ' |-' '{print $5}'`
if [ ${pin_val} == "0" ] ; then
return 0
else
return 1
fi
return 0
}
Script 2 (it can be used on Ubuntu system with kernel 4.4.x, and lede with kernel 4.9.x)
----------
#!/bin/ash
DIR=/sys/class/gpio/
global_gpio_offset=0
mt_gpio_init()
{
pin=$1
EXPORT=/sys/class/gpio/export
UNEXPORT=/sys/class/gpio/unexport
name=`ls $DIR | grep chip`
if [ x${name} != x ]; then
echo "chip id : $name"
else
echo "No available gpio chip"
exit 1
fi
base=`cat ${DIR}/${name}/base`
gpio_offset=`echo $((base+$pin))`
global_gpio_offset=$gpio_offset
if [ -d ${DIR}/gpio${gpio_offset} ]; then
return 0
else
echo ${gpio_offset} > ${EXPORT}
fi
}
mt_gpio_init $1
if [ $2 == 'dir' ]; then
if [ $3 == 'out' ]; then
echo out > ${DIR}/gpio${global_gpio_offset}/direction
else
echo in > ${DIR}/gpio${global_gpio_offset}/direction
fi
elif [ $2 == 'val' ]; then
if [ $# == 2 ]; then
cat ${DIR}/gpio${global_gpio_offset}/value
elif [ $# == 3 ]; then
echo $3 > ${DIR}/gpio${global_gpio_offset}/value
fi
fi
all GPIO 定義,請參考線上文件 :
%E9%A6%99%E8%95%89%E6%B4%BE_BPI-R2#BPI-R2_GPIO_.E5.AE.9A.E4.B9.89
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69966964/viewspace-2766755/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Banana Pi BPI-R2 Pro 開源路由器採用瑞芯微(Rockchip) RK3568晶片方案設計NaN路由器晶片
- Banana Pi ESP32-S3 搭建 micropython 開發環境,韌體編譯,燒錄NaNS3Python開發環境編譯
- Banana PI BPI-Leaf S2,ESP32-S2 搭建 micropython 開發環境,韌體編譯,燒錄NaNPython開發環境編譯
- System76 是如何打造開源硬體的
- Rock Pi開發筆記(三):Rock Pi 4B plus(基於瑞星微RK3399)板子硬體資源介紹筆記
- 【教程】Banana Pi BPI-F2P 工業控制開發板如何從SD卡與eMMC啟動NaNSD卡
- Banana Pi BPI-M2 Pro,Amlogic S905X3處理器,尺寸與BPI-M2+完全一樣NaN
- OpenAI官方開源多智慧體框架「Swarm」,並不是我想要的多智慧體框架PIOpenAI智慧體框架Swarm
- Banana Pi BPI-W2 NAS 路由開發板,採用Realtek RTD1296晶片設計NaN路由晶片
- 物件導向開發方式的開源硬體--.NET Gadgeteer物件
- 開源力量公開課第37期-《微軟+開源:如何使用微軟公有云Azure上的開源軟體》微軟
- 【活動】直播揭秘<如何從0開發HarmonyOS硬體>
- PyCharm使用技巧:Raspberry Pi的遠端開發PyCharm
- 其他主流開源硬體簡介BeagleBone Black快速入門
- 開源力量公開課第三十七期-《微軟+開源:如何使用微軟公有云Azure上的開源軟體》微軟
- 谷歌全面開源 MLIR 及生態聯盟,全球 95% 的加速器硬體都在使用谷歌
- [同步到 MaixPy3 文件] 使用 Python 程式設計入門開源硬體專案AIPython程式設計
- WIZnet助力Arduino中文社群第三屆開源硬體開發大賽!UI
- 硬體開發系列教程
- win10系統下如何開啟顯示卡硬體加速Win10
- 如何正確使用開源專案?
- k8s搭建叢集軟硬體配置要求K8S
- 如何為開源軟體做出貢獻
- 開源專案如何利用社交媒體
- 看開源軟體是如何盈利的?
- Pi派幣挖礦系統開發軟體技術
- 硬體專案開發心得
- windows10系統硬體突然無法使用如何解決Windows
- 如何使用Apple診斷程式檢查Mac硬體問題APPMac
- 香橙派將推 Orange Pi OS 系統,基於開源鴻蒙 OpenHarmony 打造鴻蒙
- Android 4.0硬體加速的使用Android
- 軟體開發的硬約束
- 國內87.4%企業使用開源技術,開源風險如何規避?
- 怎麼看筆記本硬體?想買筆記本不知如何看硬體筆記
- 設計了一款 Sensor Beacon 硬體,準備開源出來...
- 如何給mac硬體做健康檢查Mac
- 教你如何mac硬體做健康檢查Mac
- 如何檢視mac電腦硬體配置Mac