您尚未登录。

#1 2019-05-19 18:14:16

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 621

f1c100s的gpio的文件操作方式

官方f1c100s文档中并没有有关外设的操作说明,我是借用的zero的文档做的。
使用sysfs操作GPIO的例子:

#echo 192 > /sys/class/gpio/export  #导出 PG0, GREEN
#ls /sys/class/gpio/
export     gpio192    gpiochip0  unexport
#ls /sys/class/gpio/gpio192/
active_low direction subsystem/ value device/ power/ uevent
#echo "out" > /sys/class/gpio/gpio192/direction #设置为输出
#echo 0 > /sys/class/gpio/gpio192/value     #亮灯
#echo 1 > /sys/class/gpio/gpio192/value #灭灯
#echo "in" > /sys/class/gpio/gpio192/direction #设置为输入
#cat /sys/class/gpio/gpio192/value #读取电平
0

但是我执行echo 46> /sys/class/gpio/export后,成功生成gpio46文件夹,但是执行echo "out" > /sys/class/gpio/gpio46/direction时出错了
sh: write error: Unknown error 517
我用vi编辑direction文件也照样不能写入,这是什么坑?

最近编辑记录 kekemuyu (2019-05-19 18:15:43)

离线

#2 2019-05-19 18:53:50

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,191

Re: f1c100s的gpio的文件操作方式

离线

#3 2019-05-19 19:12:24

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 621

Re: f1c100s的gpio的文件操作方式

难道是我手册看错了,我看的是pe3是46

离线

#4 2019-05-19 19:28:25

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,191

Re: f1c100s的gpio的文件操作方式

kekemuyu 说:

难道是我手册看错了,我看的是pe3是46

手册还会写这个?

离线

#5 2019-05-19 20:17:54

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 621

Re: f1c100s的gpio的文件操作方式

gpioe.png
我说错了,是datasheet,这是licheepi官方的,PE3的gpio不是46吗?

离线

#6 2019-05-19 20:20:17

ippen
会员
注册时间: 2018-07-22
累计积分: 344

Re: f1c100s的gpio的文件操作方式

手册里面的序号不是gpio的编号
gpio的编号是设备树里面定义的吧

离线

#7 2019-05-19 21:34:53

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 621

Re: f1c100s的gpio的文件操作方式

ippen 说:

手册里面的序号不是gpio的编号
gpio的编号是设备树里面定义的吧


找到问题了,在zero的文档里有说明:
在Linux中,GPIO 使用0~MAX_INT之间的整数标识。

对于32位CPU,每组GPIO 32个,引脚号就是按顺序排列。

从PA0开始gpio是0,那么PE3对应是32*4+3=131,经试验已验证

离线

#8 2020-04-18 19:54:12

hzy831225
会员
注册时间: 2020-04-11
累计积分: 40

Re: f1c100s的gpio的文件操作方式

楼上的兄弟,谢谢!

离线

#9 2021-02-19 19:37:25

哦豁哦豁
会员
注册时间: 2020-01-17
累计积分: 79

Re: f1c100s的gpio的文件操作方式

/sys/class/gpio/gpio192/

请问如何通过这个接口设置 io 的上拉或者下拉呢?

# mount -t debugfs none /sys/kernel/debug
#
# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-223, parent: platform/1c20800.pinctrl, 1c20800.pinctrl:
 gpio-64  (                    |sysfs               ) out lo
 gpio-65  (                    |sysfs               ) out hi
 gpio-66  (                    |sysfs               ) out lo
 gpio-67  (                    |sysfs               ) out lo
 gpio-68  (                    |sysfs               ) out hi
 gpio-69  (                    |sysfs               ) out hi
 gpio-70  (                    |sysfs               ) out hi
 gpio-71  (                    |sysfs               ) out hi
 gpio-72  (                    |sysfs               ) in  hi
 gpio-108 (                    |sysfs               ) out lo
 gpio-109 (                    |sysfs               ) out lo
 gpio-110 (                    |sysfs               ) out lo
 gpio-111 (                    |sysfs               ) out lo
 gpio-112 (                    |sysfs               ) out lo
 gpio-113 (                    |sysfs               ) out lo
 gpio-114 (                    |sysfs               ) out lo
 gpio-115 (                    |sysfs               ) out lo
 gpio-192 (                    |serial_rts          ) out lo
 gpio-193 (                    |serial_rts          ) out lo
 gpio-196 (                    |usb0_id_det         ) in  lo IRQ
 gpio-201 (                    |sysfs               ) in  hi
#
#
#

现在有些是上拉的, 有些是下拉的.

离线

#10 2021-02-19 21:47:20

哦豁哦豁
会员
注册时间: 2020-01-17
累计积分: 79

Re: f1c100s的gpio的文件操作方式

V3s 直接用 devmem 写寄存器解决吧:

#PC_PULL0_CFG
devmem 0x01c20864 32 0x55555555

#PD_PULL0_CFG / PD_PULL1_CFG
devmem 0x01c20888 32 0x55555555
devmem 0x01c2088C 32 0x55555555

#PG_PULL0_CFG
devmem 0x01c208F4 32 0x55555555

参考手册: Allwinner_S3_Datasheet_V0_2.pdf

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn