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

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

3天内不再提示

fireflyAIO-3399C主板LED介绍

firefly 来源:firefly 作者:firefly 2019-12-09 16:25 次阅读
LED 使用

AIO-3399C 开发板上有 2 个 LED 灯,如下表所示:

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

标准的 Linux 专门为 LED 设备定义了 LED 子系统。 在 AIO-3399C 开发板中的两个 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.dts 文件中定义LED节点,具体定义如下:

leds { compatible = "gpio-leds"; 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{ 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,如下就默认打开黄灯,AIO-3399C开机后黄灯就亮

(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 烧到AIO-3399C板子上 我们可以使用串口输入命令,就可以看到蓝灯不停的间隔闪烁

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

    文章

    10991

    浏览量

    206736
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34614
  • Firefly
    +关注

    关注

    2

    文章

    534

    浏览量

    6757
收藏 人收藏

    评论

    相关推荐

    fireflyAIO-3399C主板接口介绍

     AIO-3399C 提供了丰富的接口,主要包括:电源接口, Type-C(OTG),1 x USB3.0,4 x USB2.0(接口×2,座子×2),HDMI,以太网,双LVDS屏幕接口,eDP
    的头像 发表于 12-04 10:26 2332次阅读
    <b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>接口<b class='flag-5'>介绍</b>

    fireflyAIO-3399C主板FAQs方案

    AIO-3399C默认出厂固件是支持LVDS+HDMI 1080P的双屏显示,HDMI分辨率最高只能到1080P。
    的头像 发表于 12-04 10:23 912次阅读
    <b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>FAQs方案

    fireflyAIO-3399C主板散热介绍

    散热套件 铝制散热片 产品参数 适配:AIO-3399C 尺寸:43mm (L)* 39.5mm(W)*11mm(H)
    的头像 发表于 12-09 15:56 960次阅读

    fireflyAIO-3399C主板屏幕模组介绍

    屏幕模组 7.85寸MIPI液晶屏模组 注意:默认的AIO-3399C主板不带mipi_dsi接口,如需要此功能需修改硬件。 详细请参考LCD驱动章节
    的头像 发表于 12-09 16:08 1556次阅读
    <b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>屏幕模组<b class='flag-5'>介绍</b>

    fireflyAIO-3399C主板UART介绍

    AIO-3399C 支持SPI桥接/扩展4个增强功能串口(UART)的功能,分别为UART1,UART2,RS232,RS485。每个UART都拥有256字节的FIFO缓冲区,用于数据接收和发送。
    的头像 发表于 12-09 16:12 1449次阅读
    <b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>UART<b class='flag-5'>介绍</b>

    fireflyAIO-3399C主板TIMER介绍

    RK3399有12 个Timers (timer0-timer11),有12 个Secure Timers(stimer0~stimer11) 和 2 个Timers(pmutimer0
    的头像 发表于 12-09 16:26 1281次阅读
    <b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>TIMER<b class='flag-5'>介绍</b>

    fireflyAIO-3399C主板RTC介绍

    AIO-3399C开发板上有 一个集成于RK808上的RTC(Real Time Clock),主要功能有时钟,日历,闹钟,周期性中断,双通道32KHz时钟输出。
    的头像 发表于 12-09 16:19 1205次阅读
    <b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>RTC<b class='flag-5'>介绍</b>

    fireflyAIO-3399C主板PWM介绍

    AIO-3399C开发板上引出有 3 路 PWM 输出,
    的头像 发表于 12-09 16:20 1278次阅读

    fireflyAIO-3399C主板LCD简介

    AIO-3399C开发板默认外置支持了两个LCD屏接口,一个是LVDS,一个是EDP,接口对应板子上的位置
    的头像 发表于 12-13 10:09 2824次阅读
    <b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>LCD简介

    fireflyAIO-3399C主板IR简介

    AIO-3399C 开发板上使用红外收发传感器 IR (耳机接口和recovery之间)实现遥控功能,在IR接口处接上红外接收器。本文主要描述在开发板上如何配置红外遥控器。
    的头像 发表于 12-13 10:12 1204次阅读
    <b class='flag-5'>fireflyAIO-3399C</b><b class='flag-5'>主板</b>IR简介

    fireflyAIO-3399C主板ADC介绍

    AIO-3399C 开发板上的 AD 接口有两种,分别为:温度传感器 (Temperature Sensor)、逐次逼近ADC (Successive Approximation Register)。
    的头像 发表于 12-13 10:14 1162次阅读

    fireflyAIO-3399C主板编译 Android7.1 固件简介

    Android7.1 的SDK分为 tvbox版本以及industry版本(主要维护),用户可根据需求,自行下载所需的SDK来进行编译和开发,两版SDK均兼容AIO-3399C与AIO-3399C(AI)板型。
    的头像 发表于 12-13 10:29 1412次阅读

    fireflyAIO-3399C主板升级固件介绍

    本文介绍了如何将主机上的固件文件,通过Type-C数据线,烧录到开发板的闪存中。升级时,需要根据主机操作系统和固件类型来选择合适的升级方式。
    的头像 发表于 12-13 10:46 1511次阅读

    fireflyAIO-3399J主板屏幕模组介绍

    屏幕模组 7.85寸MIPI液晶屏模组 注意:默认的AIO-3399J主板不带mipi_dsi接口,如需要此功能需修改硬件。
    的头像 发表于 12-24 10:14 1372次阅读
    <b class='flag-5'>fireflyAIO-3399</b>J<b class='flag-5'>主板</b>屏幕模组<b class='flag-5'>介绍</b>

    fireflyAIO-3399J主板LED使用介绍

    AIO-3399J 开发板上有 2 个 LED
    的头像 发表于 12-24 10:31 2652次阅读
    <b class='flag-5'>fireflyAIO-3399</b>J<b class='flag-5'>主板</b><b class='flag-5'>LED</b>使用<b class='flag-5'>介绍</b>