查看: 1833|回复: 0

[i.MX6ULL竞赛专区] 【我的项目666--智能插排】4. PWM驱动

[复制链接]
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 815 天

    [LV.10]以坛为家III

    71

    主题

    2438

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5495
    最后登录
    2024-4-19
    发表于 2018-7-13 15:56:00 | 显示全部楼层 |阅读模式
    本帖最后由 leo121_3006061 于 2018-7-13 17:17 编辑

    我的项目中有一个是pwm调光调速的功能,本帖就实现如何进行pwm调光调速,外接一个了led灯来观察实验结果,下边记录本次实验的全部过程。pwm驱动已经由系统提供了,我们只需修改dts来分配一个io即可,本次实验我们使用gpio_5做为pwm输出(gpio_9已经用作插座的开关了),默认目录为arch/arm/boot/dts/。

    1. 首先修改imx6ull.dtsi,修改pwm4 如下图所示,第二个红框是修改过的,注意大小写,第一个红框是未修改的。

    imx6ull.dtsi (~-MYS6ULx-devel-04-Source-MYiR-iMX-Linux-arch-arm-boot-dts) - gedit_123.png
    为何修改pwm4,这个是依据imx6ul_pinfunc.h查找到的
    imx6ul-pinfunc.h (~-MYS6ULx-devel-04-Source-MYiR-iMX-Linux-arch-arm-boot-dts) - .png

    2. 打开mys-imx6ull-14x14-evk.dts, 先找到要用的gpio_5,先注释掉
    选区_122.png
    3. 接上一步,添加pwm4,及gpio1_io05(gpio_5)

    选区_124.png
    选区_125.png

    4. 保存后编译生成dtb,下载到开发板,使用dd覆盖,重启开发板(此过程省略)

    5. ssh进入开发板,通过以下步骤,点亮LED,改变占空比来观察LED的亮度
    1. I. echo 0 > /sys/class/pwm/pwmchip3/export/*设置PWM4输出,调出pwm0目录下设备节点,用于以下配置 */

    2. II. echo 1 >/sys/class/pwm/pwmchip3/pwm0/enable/*设置PWM4使能 */

    3. III. echo 1000000 >/sys/class/pwm/pwmchip3/pwm0/period/*设置PWM4一个周期的持续时间,单位为ns,即1K Hz */

    4. IV. echo 500000 >/sys/class/pwm/pwmchip3/pwm0/duty_cycle/*设置一个周期中的”ON”时间,单位为ns,即占空比=duty_cycle/period=50% */
    复制代码
    【综述】通过本次实验,实现了pwm输出,进而可以进行调光调速。顺便附上官网的培训资料Yocto Training - HOME
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-19 21:45 , Processed in 0.107924 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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