TI中文支持网
TI专业的中文技术问题搜集分享网站

AM3352 Uboot如何开启PWM

想在uboot下开启ecap.2 PWM功能 来控制背光实现开机亮屏。

目前的做法

#define PWMSS2_BASE 0x48304000
#define PWMSS_EPWMCLK_EN BIT(8)

/* PWMSS (from arch/arm/include/asm/arch-am33xx/cpu.h) */
struct pwmss_regs {
unsigned int idver;
unsigned int sysconfig;
unsigned int clkconfig;
unsigned int clkstatus;
};

static int enable_pwm(void)
{
u16 val;
struct pwmss_regs *pwmss = (struct pwmss_regs *)PWMSS2_BASE;
printf("pwm: read ...\n");
val = readw(&pwmss->clkconfig);
printf("pwm: write ...\n");
writew(val | PWMSS_EPWMCLK_EN , &pwmss->clkconfig);
/* --- Some other stuff --- */
}

但是只能打印

pwm: read ...
hank hank:

在uboot命令模式下直接读取:md 0x48304000 1 命令行会卡死。

Nancy Wang:

回复 hank hank:

看一下这个帖子。
e2e.ti.com/…/707195

hank hank:

回复 Nancy Wang:

我参考帖子在uboot下通过控制寄存器开启了pwm输出,但是会出现一个问题:如果uboot开启了这个pwm,那么kernel的pwm会延迟开启(late_initcall(backlight_init);),如果uboot取消这个pwm,那么kernel能在固定的时间开启。我现在希望pwm能在uboot到kernel保持不变,因为它控制着屏幕的背光,如果PWM消失可能会黑屏,有没有什么方法能够保持或者在kernel开启瞬间就开启pwm?谢谢。

yongqing wang:

回复 hank hank:

将kernel启动过程中相关的pwm初始化注释掉不行吗?

hank hank:

回复 yongqing wang:

注释掉之后 进入kernel pwm的输出脚会保持高或者低电频(可能是uboot pwm结束的电频)不变化

yongqing wang:

回复 hank hank:

在uboot也没必要用pwm控制背光吧?

hank hank:

回复 yongqing wang:

硬件是这么设计的。。用 PWM控制背光电压 

赞(0)
未经允许不得转载:TI中文支持网 » AM3352 Uboot如何开启PWM
分享到: 更多 (0)