首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在linux内核3.12中使用leds pwm控制系统控制leds

在linux内核3.12中使用leds pwm控制系统控制leds
EN

Stack Overflow用户
提问于 2014-09-08 10:16:23
回答 1查看 3.8K关注 0票数 1

我们使用的是基于beaglebone的自定义板,我们正在为我们的板移植linux 3.12,我们有三个leds需要使用pwm来控制。这些LEDS和下面的球相连,

代码语言:javascript
运行
复制
1. E18 --> Pinmux mode 0 --> eCAP0_in_PWM0_out
2. B19 --> Pinmux mode 3 --> eCAP1_in_PWM1_out
3. C18 --> Pinmux mode 3 --> eCAP2_in_PWM2_out

我们对设备树进行了如下修改,以启用leds pwm支持,

代码语言:javascript
运行
复制
 am33xx_pinmux: pinmux@44e10800 {
            pinctrl-names = "default";
            backlight_pin_0: pinmux_backlight_pin_0 {
                    pinctrl-single,pins = <
                            0x164 0x00  /* ecap0_in_pwm0_out.gpio0_7, OUTPUT | MODE0 */
                    >;
            };
            backlight_pin_1: pinmux_backlight_pin_1 {
                    pinctrl-single,pins = <
                            0x18C 0x03  /* ecap0_in_pwm0_out.gpio0_7, OUTPUT | MODE0 */
                    >;
            };
            backlight_pin_2: pinmux_backlight_pin_2 {
                    pinctrl-single,pins = <
                            0x188 0x03  /* ecap0_in_pwm0_out.gpio0_7, OUTPUT | MODE0 */
                    >;
            };
};


ocp {

                    epwmss0: epwmss@48300000 {
                    status = "okay";
                    /*ecap0: ecap@48300100 {*/
                    ehrpwm0: ehrpwm@48300200 {
                            status = "okay";
                            pinctrl-names = "default";
                            pinctrl-0 = <&backlight_pin_0>;
                    };
            };
            epwmss1: epwmss@48302000 {
                    status = "okay";
                    /*ecap0: ecap@48300100 {*/
                    ehrpwm1: ehrpwm@48302200 {
                            status = "okay";
                            pinctrl-names = "default";
                            pinctrl-0 = <&backlight_pin_1>;
                    };
            };

};


        pwm_led {
            compatible = "pwm-leds";
            led0 {
                    pwms = <&ehrpwm0 0 50 1>;
                    max-brightness = <255>;
                    linux,default-trigger = "default-on";
                    brightness = <127>;
                    status = "okay";
            };
            led1 {
                    pwms = <&ehrpwm1 1 50 1>;
                    max-brightness = <255>;
                    linux,default-trigger = "default-on";
                    brightness = <127>;
            };

    };

通过以上更改,我们可以看到"/sys/class/pwm/“和"/sys/class/leds/”中的条目。但问题是我们不能控制leds,leds没有打开,

代码语言:javascript
运行
复制
# ls /sys/class/leds/
led0  led1
# ls /sys/class/leds/led0/
brightness      max_brightness  subsystem       uevent
device          power           trigger
# cat /sys/class/leds/led0/trigger
none nand-disk timer oneshot heartbeat backlight gpio cpu0 [default-on]
# cat /sys/class/leds/led0/brightness
255
# cat /sys/class/leds/led0/max_brightness
255
# ls /sys/class/pwm/
pwmchip0  pwmchip2
# ls /sys/class/pwm/pwmchip0
device     export     npwm       power      subsystem  uevent     unexport
# cat /sys/class/pwm/pwmchip0/device/modalias
platform:48300200.ehrpwm

我们试图改变亮度和触发下的leds,但这没有帮助,有什么建议吗?你看到什么东西不见了吗?

谢谢,

你好,安库

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-10 05:18:53

最后,我们发现我们应该使用ecap而不是ehrpwm来实现脉宽调制。

如需详细答案,请参阅以下连结

http://e2e.ti.com/support/embedded/linux/f/354/t/366635.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25721969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档