0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Firefly-RK3399--LED 介绍

firefly 来源:firefly 作者:firefly 2019-11-22 10:13 次阅读
LED 使用
前言

Firefly-RK3399 开发板上有 2 个 LED 灯,如下表所示:

可通过使用 LED 设备子系统或者直接操作 GPIO 控制该 LED。

以设备的方式控制 LED

标准的 Linux 专门为 LED 设备定义了 LED 子系统。 在 Firefly-RK3399 开发板中的两个 LED 均以设备的形式被定义。

用户可以通过 /sys/class/leds/ 目录控制这两个 LED。

开发板上的 LED 的默认状态为:

  • Blue: 系统上电时打开

  • Yellow:用户自定义

用户可以通过 echo 向其 brightness属性输入命令控制每一个 LED:

root@rk3399_firefly_box:~ # echo 0 >/sys/class/leds/firefly:blue:power/brightness //蓝灯灭 root@rk3399_firefly_box:~ # echo 1 >/sys/class/leds/firefly:blue:power/brightness //蓝灯亮
使用trigger 方式控制 LED

Trigger 包含多种方式可以控制LED,这里就用两个例子来说明

  • Simple trigger LED

  • Complex trigger LED

更详细的说明请参考 leds-class.txt 。

首先我们需要知道定义多少个LED,同时对应的LED的属性是什么。

在 kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-port.dtsi 文件中定义LED节点,具体定义如下:

leds { compatible = "gpio-leds"; power_led: power { label = "firefly:blue:power"; linux,default-trigger = "ir-power-click"; default-state = "on"; gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&led_power>; }; user_led: user { label = "firefly:yellow:user"; linux,default-trigger = "ir-user-click"; default-state = "off"; gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&led_user>; }; };

注意:compatible 的值要跟 drivers/leds/leds-gpio.c 中的 .compatible 的值要保持一致。

Simple trigger LED

按名字来是看就是简单的触发方式控制LED,如下就默认打开黄灯,Firefly-RK3399开机后黄灯就亮

(1)定义 LED 触发器 在kernel/drivers/leds/trigger/led-firefly-demo.c 文件中有如下添加

DEFINE_LED_TRIGGER(ledtrig_default_control);

(2)注册该触发器

led_trigger_register_simple("ir-user-click", &ledtrig_default_control);

(3)控制 LED 的亮。

led_trigger_event(ledtrig_default_control, LED_FULL); //yellow led on

(4)打开LED demo

led-firefly-demo默认没有打开,如果需要的话可以使用以下补丁打开demo驱动:

--- a/kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-demo.dtsi +++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-demo.dtsi @@ -52,7 +52,7 @@ led_demo: led_demo { - status = "disabled"; + status = "okay"; compatible = "firefly,rk3399-led"; };
Complex trigger LED

如下是trigger方式控制LED复杂一点的例子,timer trigger 就是让LED达到不断亮灭的效果

我们需要在内核把timer trigger配置上

在 kernel 路径下使用 make menuconfig ,按照如下方法将timer trigger驱动选中。

Device Drivers --->LED Support --->LED Trigger support --->LED Timer Trigger

保存配置并编译内核,把kernel.img 烧到Firefly-RK3399板子上 我们可以使用串口输入命令,就可以看到蓝灯不停的间隔闪烁

echo "timer" > sys/class/leds/firefly\:blue\:power/trigger

用户还可以使用 cat 命令获取 trigger 的可用值:

root@rk3399_firefly_box:/ # cat sys/class/leds/firefly\:blue\:power/trigger none rc-feedback test_ac-online test_battery-charging-or-full test_battery-charging test_battery-full test_battery-charging-blink-full-solid test_usb-online mmc0 mmc1 ir-user-click [timer] heartbeat backlight default-on rfkill0 mmc2 rfkill1 rfkill2

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10986

    浏览量

    206723
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34604
  • Firefly
    +关注

    关注

    2

    文章

    534

    浏览量

    6755
收藏 人收藏

    评论

    相关推荐

    Firefly RK3399试用体验】+linux环境下给RK3399烧入linux

    `首先感谢论坛给我这个使用的机会,去年这块板子刚出来的时候就被他强大的性能所吸引,刚好在开发双目视觉的项目,需要一个快能直接开启两个摄像头的板子,firefly的这块RK3399无疑是最适合不过的了
    发表于 08-26 11:06

    请问firefly rk3399如何设置静态IP?

    请问firefly rk3399如何设置静态IP?
    发表于 03-08 06:38

    如何对Firefly-RK3399进行编译呢

    如何对Firefly-RK3399进行编译呢?
    发表于 03-08 07:16

    Firefly-RK3399板卡上电默认启动Android系统

      一、简介  Firefly-RK3399Firefly最新发布的新一代顶级开源平台,采用了瑞芯微的六核(双核A72+四核A53)处理器——RK3399。  二、开箱  Firefly
    发表于 06-21 10:05

    RK3399-firefly开发板原理图

    RK3399-firefly开发板原理图
    发表于 09-16 09:35 287次下载

    Firefly-RK3399--接口介绍

    Firefly-RK3399 提供了丰富的接口,主要包括:电源接口,
    的头像 发表于 11-19 15:25 3274次阅读
    <b class='flag-5'>Firefly-RK3399</b>--接口<b class='flag-5'>介绍</b>

    Firefly-RK3399--FAQs简介

    Firefly-RK3399 的 HDMI 能自动识别显示的分辨率。
    的头像 发表于 11-19 15:27 2727次阅读
    <b class='flag-5'>Firefly-RK3399</b>--FAQs简介

    Firefly-RK3399--PWM介绍

    Firefly-RK3399 开发板上有 4 路 PWM 输出,分别为 PWM0 ~ PWM3,4路 PWM 分别使用在eDP背光、MIPI背光、VDDLOG供电、红外IR。 本章主要描述如何配置 PWM。
    的头像 发表于 11-22 10:08 5110次阅读
    <b class='flag-5'>Firefly-RK3399</b>--PWM<b class='flag-5'>介绍</b>

    Firefly-RK3399开发板

    Firefly-RK3399 开发板分别带有两个MIPI,一个DVP摄像头接口,MIPI支持最高4K拍照,并支持 1080P 30fps以上视频录制。此外,开发板还支持 USB 摄像头。
    的头像 发表于 11-23 09:34 4279次阅读
    <b class='flag-5'>Firefly-RK3399</b>开发板

    Firefly-RK3399--LCD介绍

    Firefly-RK3399开发板外置了两个LCD屏接口,一个是EDP,一个是MIPI
    的头像 发表于 11-22 10:17 5891次阅读
    <b class='flag-5'>Firefly-RK3399</b>--LCD<b class='flag-5'>介绍</b>

    Firefly-RK3399--IR程序 使用

    Firefly-RK3399 开发板上使用红外收发传感器 IR (在 mic 接口和喇叭接口之间)实现遥控功能,在IR接口处接上红外接收器。本文主要描述在开发板上如何配置红外遥控器。
    的头像 发表于 11-22 10:24 1657次阅读
    <b class='flag-5'>Firefly-RK3399</b>--IR程序 使用

    Firefly-RK3399--I2C开发板介绍

    Firefly-RK3399开发板上有 9 个片上 I2C 控制器,各个 I2C 的使用情况
    的头像 发表于 11-22 10:43 2176次阅读
    <b class='flag-5'>Firefly-RK3399</b>--I2C开发板<b class='flag-5'>介绍</b>

    Firefly-RK3399--ADC开发板介绍

    Firefly-RK3399开发板上的 AD 接口有两种,分别为:温度传感器 (Temperature Sensor)、逐次逼近ADC (Successive Approximation Register)。
    的头像 发表于 11-22 10:34 1847次阅读
    <b class='flag-5'>Firefly-RK3399</b>--ADC开发板<b class='flag-5'>介绍</b>

    Firefly-RK3399开发板介绍

    Firefly-RK3399有灵活的启动方式。一般情况下,除非硬件损坏,Firefly-RK3399开发板是不会变砖的。
    的头像 发表于 11-23 11:30 2965次阅读
    <b class='flag-5'>Firefly-RK3399</b>开发板<b class='flag-5'>介绍</b>

    如何对RK3399开发板做一些基础的配置

    最近在小黄鱼入手了一个RK3399的开发板,RK的芯片我也是第一次使用。FireFly配套提供了完善的教程,可以在他们的WIKI上找到。上面有的内容就不在本文叙述了,大家可以参考教程https://wiki.t-
    的头像 发表于 10-10 14:58 1489次阅读