【NXP开发板应用—智能插排】3.驱动GPIO点亮外接LED
【前言】
首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提供了一个非常好的入门和学习嵌入式的机会,同时在社区及技术群内也得到了很大的帮助和鼓励,这也是我不断前行和进步的动力,在这里一并致谢了。下面我附上本次学习心得及过程。
米尔MYS-6ULX单板机介绍:
MYS-6ULX是一款以NXP i.MX6UL/i.MX6ULL处理器,Cortex-A7内核为核心的嵌入式单板机,主频为528MHz。配备了256MB高速DDR3、256M NAND Flash,集成了以太网、WIFI、LCD接口、USB OTG、USB Host、TF Card、用户按键、用户LED、IO扩展接口等功能。
详细介绍:http://www.myir-tech.com/product/mys_6ulx.htm
收到米尔的板子,先上图:

【概述】
计划通过本次项目实现一些家庭电器设备控制,进现实现远程监控;
1,实现计时控制插排包括,计时,延时,定时,倒计时,周期开通和关闭功能;
2,实现PWM调控灯光或者风扇调速;
3,实现红外遥控控制空调。
正文:【驱动GPIO点亮外接LED】
在上一篇gpio解析基础上,我在device tree添加了自己要用到的gpio,并且简单的驱动了外接led灯,点亮和熄灭。我暂定使用资源gpio1_io9,手册上简写gpio9。今天的操作成功对于我来说是里程碑了,非常关键,项目里叫milestone。我的项目是智能插排,其中一项功能就是开关控制插座,不要小瞧了开关,有N中方法可以实现,我用继电器。有M种控制模式,比如,计时,倒计时,延时,定时,周期工作等等,花样繁多。下边分享一下我的调试过程,比较艰辛。
1. 参考dts里已经有的两个节点gpio_leds,gpio_key,先照葫芦画个瓢,添加些代码,如图所示
说明:gpio5已经被占用,我是在操作的时候发现的,就先忽略掉。 
并且在iomux里添加如下图代码 
2.修改完成后,单独编译dts文件,生成dtb,然后我就懵了,怎么更新呢,总不至于全部更新一遍吧,群里求助,@软件工程师(红旗哥)给我一个方案是利用tftp,uboot引导通过tftp访问server自动下载dtb文件进行更新,好像有些难度,不过方案肯定是可以的(红旗哥对嵌入式开发还是比较熟悉的)。于是我在网上找到另外一种方法,就是说要找到开发板的dtb文件存贮的位置,然后用编译好的dtb直接替换掉,重启就可以加载了,多么简单,于是我就开始在开发板上查找脚dtb的文件一直无果,以至于我开始怀疑自己是不是忘记find命令了。直到有一份资料说可能存贮在某个特定的分区里,这时候才恍然大悟,fdisk -l 看到4个分区,又用cat /proc/partation查看了一下,如图所示 
看到dtb了我很开心,mount上来不就可以操作了吗?用了几种参数,终于蒙对了,加载上了,然而进去查找也没有dtb文件,但是看起来目录结构有些像dtb生成的 
找到了比较熟悉的例程里的leds,gpio_key


怀疑这个整个分区就是dtb了,于是决定用dd命令试探一下,先用scp把编译好的文件传到开发板上,使用dd命令对mtdblock2进行覆盖
dd if= of=,其总if表示input file ,of表示out file大概这个意思。 
重新启动开发板系统之后,打开系统去查找我添加的power_strip,看看是否能找到,当我看到这个参数时非常高兴,终于更新成功了 
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 —> 写低电平

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


后续继续更新博客,敬请关注,有同道者欢迎提出建议。
声明:本文首发在与非网社区 NXP论坛›竞技场›恩智浦/米尔i.MX6ULL竞赛专区.›作者论坛ID:leo121_3006061
【NXP开发板应用—智能插排】3.驱动GPIO点亮外接LED的更多相关文章
- 【NXP开发板应用—智能插排】2.初步解析example之GPI
[前言] 首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提 ...
- 【NXP开发板应用—智能插排】4. PWM驱动
[前言] 首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提 ...
- 【NXP开发板应用—智能插排】1.如何使用scp传输文件
首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提供了一个非 ...
- @开发者,快来申请你的工业级NXP内核物联网开发板
米尔工业级NXP开发板试用活动(MYD-C8MMX) 不久前 米尔推出了新一代高性价比核心板之王 MYC-C8MMX核心板及开发板 获得众多客户热烈反馈 这一次 我们给各位带来福利 i.MX8M mi ...
- 真正的RISC-V开发板——VEGA织女星开发板开箱评测
前言 由于最近ARM公司要求员工"停止所有与华为及其子公司正在生效的合约.支持及未决约定",即暂停与华为的相关合作,大家纷纷把注意力投向了另一个的处理器架构RISC-V,它是基于精 ...
- 迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解
本文转自:http://www.topeetboard.com 视频下载地址: 驱动注册:http://pan.baidu.com/s/1i34HcDB 设备注册:http://pan.baidu.c ...
- TPYBoard V102:能跑Python的stm32开发板
近来micropython语言做硬件编程很火,随之而来的就开始带动着支持micropython语言编程的开发板也开始火的发烫,今天小编就来和大家介绍一款很经典的micropython开发板-TPYBo ...
- LS1021ATWR开发板启动日志分析
一.背景 LS1021ATWR开发板运行官方的openwrt系统 二.日志分析 2.1 linux相关日志 root@OpenWrt:/# reboot 重启 root@OpenWrt:/# [ 2 ...
- 1_ZedBoard开发板测试
启动 将SD卡插入电脑进行格式化 格式化时,要将SD卡格式化为FAT32文件系统.块大小格式化为4096字节时后面会出现无法启动的情况,可以先复现一下这个错误.块大小我选择4096字节. 然后将Zed ...
随机推荐
- Razor模板引擎 (RazorEngine)
Razor模板引擎不仅在ASP.NET MVC中内置了Razor模板引擎,还有一个开源的RazorEngine, 这样以来我们可以在非ASP.NET MVC项目中使用Razor引擎,甚至在控制台,Wi ...
- 【Leetcode】【Hard】Reverse Nodes in k-Group
Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If ...
- Python学习---Python下[元组]的学习
元组是不可变的, 用小括号()定义,而且一旦定义 ,不可变[类型是tuple] [元组看做一个整体,不可拆分,不可赋值,但可以全部重新赋值] 通过圆括号,用逗号分隔,常用在使语句或用户定义的函数能够安 ...
- Mysql 系统学习梳理_【All】
0.Linux学习---CentOS 7编译安装MySQL 8.0 1.Mysql学习---SQL语言的四大分类 2.Mysql学习---基础操作学习 3.Mysql学习---基础操作学习2 4.My ...
- HTTP常用状态码大全
HTTP状态码对照表 HTTP response codes 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码 ...
- JAVA串口开发帮助类分享-及写在马年末
摘要: 在系统集成开发过程中,存在着各式的传输途径,其中串口经常因其安全性高获得了数据安全传输的重用,通过串口传输可以从硬件上保证数据传输的单向性,这是其它介质所不具备的物理条件.下面我就串口java ...
- Ajax实例一:利用服务器计算
Ajax实例一:利用服务器计算 HTML代码 //输入两个数 <input id="number1" type="number"> <inpu ...
- 显示mac电脑中隐藏的文件和文件夹
显示mac电脑中隐藏的文件和文件夹的办法:打开电脑,cd到相应的文件夹,输入以下命令,为显示隐藏的文件和文件夹 defaults write com.apple.finder AppleShowAll ...
- SpringAop之日志管理
导入的依赖均为JavaWeb界面在线配置代码生成器这篇文章,你只需将这篇文章的maven依赖导入即可. SpringAop利用注解的特性进行日志管理,只需在对应的方法上加上自己编写的注解,即可完美实现 ...
- 配置git服务
https://www.cnblogs.com/sumuncle/p/6362697.html