查看: 6315|回复: 17

[i.MX6ULL竞赛专区] 【我的项目666--智能插排】--3.驱动GPIO点亮外接LED

[复制链接]
  • TA的每日心情
    开心
    昨天 10:37
  • 签到天数: 815 天

    [LV.10]以坛为家III

    71

    主题

    2438

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5495
    最后登录
    2024-4-19
    发表于 2018-6-22 14:14:54 | 显示全部楼层 |阅读模式
    本帖最后由 leo121_3006061 于 2018-7-6 12:11 编辑

    在上一篇gpio解析基础上,我在device tree添加了自己要用到的gpio,并且简单的驱动了外接led灯,点亮和熄灭。我暂定使用资源gpio1_io9,手册上简写gpio9。今天的操作成功对于我来说是里程碑了,非常关键,项目里叫milestone。我的项目是智能插排,其中一项功能就是开关控制插座,不要小瞧了开关,有N中方法可以实现,我用继电器。有M种控制模式,比如,计时,倒计时,延时,定时,周期工作等等,花样繁多。下边分享一下我的调试过程,比较艰辛。
    1. 参考dts里已经有的两个节点gpio_leds,gpio_key,先照葫芦画个瓢,添加些代码,如图所示
    说明:gpio5已经被占用,我是在操作的时候发现的,就先忽略掉。

    选区_082.png
    并且在iomux里添加如下图代码
    选区_108.png
    2.修改完成后,单独编译dts文件,生成dtb,然后我就懵了,怎么更新呢,总不至于全部更新一遍吧,群里求助,@软件工程师(红旗哥)给我一个方案是利用tftp,uboot引导通过tftp访问server自动下载dtb文件进行更新,好像有些难度,不过方案肯定是可以的(红旗哥对嵌入式开发还是比较熟悉的)。于是我在网上找到另外一种方法,就是说要找到开发板的dtb文件存贮的位置,然后用编译好的dtb直接替换掉,重启就可以加载了,多么简单,于是我就开始在开发板上查找脚dtb的文件一直无果,以至于我开始怀疑自己是不是忘记find命令了。直到有一份资料说可能存贮在某个特定的分区里,这时候才恍然大悟,fdisk -l 看到4个分区,又用cat /proc/partation查看了一下,如图所示
    选区_098.png

    看到dtb了我很开心,mount上来不就可以操作了吗?用了几种参数,终于蒙对了,加载上了,然而进去查找也没有dtb文件,但是看起来目录结构有些像dtb生成的
    选区_099.png
    找到了比较熟悉的例程里的leds,gpio_key

    选区_100.png

    选区_101.png

    3. 怀疑这个整个分区就是dtb了,于是决定用dd命令试探一下,先用scp把编译好的文件传到开发板上,使用dd命令对mtdblock2进行覆盖

    dd if= of=,其总if表示input file ,of表示out file大概这个意思。
    选区_104.png

    4. 重新启动开发板系统之后,打开系统去查找我添加的power_strip,看看是否能找到,当我看到这个参数时非常高兴,终于更新成功了

    选区_105.png

    5.加载完成,就要验证一下是不是这个设备是正确的,打开路径/sys/class/gpio/gpio9,这个应该是我在设备树里添加的,然后在这里生成出来的。
    纠正一下错误,当时我的做了很多操作(是后补的帖子,就把这件事混淆了,非常抱歉),上边gpio9不是从设备树生成出来的,是通过下边的命令,感谢@apple_9938下边回帖提出的质疑,我再三检查了一下,但是power_strip确实是从设备树生成出来的,怎么像leds一样注册在/sys/class目录下,这一步我还不知道。
    echo 9 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio9/direction
    echo 1 > /sys/class/gpio/gpio9/value    ---> 写高电平
    echo 0 > /sys/class/gpio/gpio9/value    ---> 写低电平


    选区_107.png

    执行这个命令,控制外接的LED灯亮和熄灭了,说明设置正确,可以用来驱动继电器来控制插排了。 20180622_130641.jpg
    对比一下就明显了,要不然看不出来是亮和灭的状态
    20180622_130722.jpg





    评分

    参与人数 1 +3 收起 理由
    doatello + 3

    查看全部评分

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2193
    最后登录
    2023-12-1
    发表于 2018-6-22 14:57:58 | 显示全部楼层
    写的很好,加油,期待新作品
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2193
    最后登录
    2023-12-1
    发表于 2018-6-22 14:59:24 | 显示全部楼层
    很不错的方法,学习了,GET新技能
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 10:37
  • 签到天数: 815 天

    [LV.10]以坛为家III

    71

    主题

    2438

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5495
    最后登录
    2024-4-19
     楼主| 发表于 2018-6-22 15:23:28 | 显示全部楼层
    mzy2364 发表于 2018-6-22 14:57
    写的很好,加油,期待新作品

    感谢大佬指点
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-27 13:15
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    12

    主题

    22

    帖子

    0

    注册会员

    Rank: 2

    积分
    190
    最后登录
    2019-6-24
    发表于 2018-6-22 15:57:20 | 显示全部楼层
    非常好,学习了,谢谢分享。
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-27 13:15
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    12

    主题

    22

    帖子

    0

    注册会员

    Rank: 2

    积分
    190
    最后登录
    2019-6-24
    发表于 2018-6-22 16:38:34 | 显示全部楼层
    怎样确定系统用的是哪个DTS文件呢?? dts文件夹内有很多DTS文件啊
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
    发表于 2018-6-22 16:52:55 | 显示全部楼层
    感谢分享!(๑•̀ㅂ•́)و✧棒
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 10:37
  • 签到天数: 815 天

    [LV.10]以坛为家III

    71

    主题

    2438

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5495
    最后登录
    2024-4-19
     楼主| 发表于 2018-6-22 21:51:59 | 显示全部楼层
    NXP管管 发表于 2018-6-22 16:52
    感谢分享!(๑•̀ㅂ•́)و✧棒

    谢谢鼓励
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 10:37
  • 签到天数: 815 天

    [LV.10]以坛为家III

    71

    主题

    2438

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5495
    最后登录
    2024-4-19
     楼主| 发表于 2018-6-22 21:54:21 | 显示全部楼层
    本帖最后由 leo121_3006061 于 2018-6-23 11:56 编辑
    apple_9938 发表于 2018-6-22 16:38
    怎样确定系统用的是哪个DTS文件呢?? dts文件夹内有很多DTS文件啊

    比如说我的板子是iot,那么就看手册里的3.2节有个列表,对应着每一种开发板都有相应的dtb文件名,按照这个去查找对应的dts
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-27 13:15
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    12

    主题

    22

    帖子

    0

    注册会员

    Rank: 2

    积分
    190
    最后登录
    2019-6-24
    发表于 2018-6-26 13:04:44 | 显示全部楼层
    我看了看我的sys/class/gpio   没有导出来gpio9 ,设备树里面倒是有power_strip
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 12:13 , Processed in 0.139842 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表