您尚未登录。

楼主 # 2024-06-25 15:04:59

游侠TT
会员
注册时间: 2024-04-24
已发帖子: 21
积分: 21

全志v3s的dts怎么配置pwm0,让其管脚PB4在系统初始化阶段不是3.3v高电平

如题,需要使用PWM功能,按教程配置后,在进入用户态前管脚是高电平3.3v,怎么让它变低

离线

#1 2024-06-25 15:22:05

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 660
积分: 793
个人网站

Re: 全志v3s的dts怎么配置pwm0,让其管脚PB4在系统初始化阶段不是3.3v高电平

你这PWM这么久了还没搞定呀。试下在Uboot里将该PWM所处的引脚配置为输出并输出低电平,或者在Uboot里也配置为PWM但占空比设为0。

最近编辑记录 海石生风 (2024-06-25 15:23:32)

离线

楼主 #2 2024-06-25 17:49:05

游侠TT
会员
注册时间: 2024-04-24
已发帖子: 21
积分: 21

Re: 全志v3s的dts怎么配置pwm0,让其管脚PB4在系统初始化阶段不是3.3v高电平

海石生风 说:

你这PWM这么久了还没搞定呀。试下在Uboot里将该PWM所处的引脚配置为输出并输出低电平,或者在Uboot里也配置为PWM但占空比设为0。

我已经试过在uboot里设置引脚了,现在发现是dts里配置pwm使能这里pinctrl-names = "default",pinctrl-0这里还是会配置pwm0引脚功能,我改成pinctrl-names = "sleep",pinctrl-1上电就不会输出,但是这是休眠了,不能输出PWM了,这个pinctrl在哪改
     &pwm {
     pinctrl-names = "default";
     pinctrl-0 = <&pwm0_pins>, <&pwm1_pins>;
     status = "okay";
  };

离线

#3 2024-06-26 17:06:08

memory
会员
注册时间: 2021-08-11
已发帖子: 483
积分: 459

Re: 全志v3s的dts怎么配置pwm0,让其管脚PB4在系统初始化阶段不是3.3v高电平

@游侠TT

linux dts 把pwm部分屏蔽,看进入linux之后是否一直保持uboot的pwm状态。

如果是,

则改下Linux里面PWM的驱动初始化代码,读出io寄存器复用状态,如果是pwm复用,继续读出pwm的频率与占空比。

离线

楼主 #4 2024-06-26 21:14:21

游侠TT
会员
注册时间: 2024-04-24
已发帖子: 21
积分: 21

Re: 全志v3s的dts怎么配置pwm0,让其管脚PB4在系统初始化阶段不是3.3v高电平

memory 说:

@游侠TT

linux dts 把pwm部分屏蔽,看进入linux之后是否一直保持uboot的pwm状态。

如果是,

则改下Linux里面PWM的驱动初始化代码,读出io寄存器复用状态,如果是pwm复用,继续读出pwm的频率与占空比。

已经试过修改u-boot文件夹下arch/arm/dts/sun8i-v3s.dtsi和sun8i-v3s-licheepi-zero.dts,将PWM驱动代码添加进去,屏蔽了linux的PWM部分,但是启动后在/sys/class/pwm下没有pwm的节点,pwm0引脚也没有高电平出来。如果配置了linux的PWM代码,系统启动后pwm0引脚默认配置成是reversed模式,所以一直是高电平,应该如何修改驱动初始化代码

离线

#5 2024-06-26 22:19:36

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

Re: 全志v3s的dts怎么配置pwm0,让其管脚PB4在系统初始化阶段不是3.3v高电平

uboot初始化成 gpio低电平,进linux配置成pwm





离线

楼主 #6 2024-06-27 10:10:35

游侠TT
会员
注册时间: 2024-04-24
已发帖子: 21
积分: 21

Re: 全志v3s的dts怎么配置pwm0,让其管脚PB4在系统初始化阶段不是3.3v高电平

晕哥 说:

uboot初始化成 gpio低电平,进linux配置成pwm

昨天已经试过了,屏蔽了linux的pwm,pwm0的管脚PB4可以正常被Uboot设置成高或者低电平,设置成低后再加上linux的pwm,立马就变高了

离线

#7 2024-06-27 10:13:03

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

Re: 全志v3s的dts怎么配置pwm0,让其管脚PB4在系统初始化阶段不是3.3v高电平

游侠TT 说:
晕哥 说:

uboot初始化成 gpio低电平,进linux配置成pwm

昨天已经试过了,屏蔽了linux的pwm,pwm0的管脚PB4可以正常被Uboot设置成高或者低电平,设置成低后再加上linux的pwm,立马就变高了

所以建议你改V3s 的 pwm 驱动,先把pwm寄存器值读出来,然后再写回去,或者可以用别的方法避免再次初始化。





离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn