6260外置背光ic,怎么输出pwm?知道的大神指点一下
我 60M 的喇叭 和 马达不 工作,有改过没有啊
60上的PWM 定义 在pwm_drv.h
#define PWM_MAX_NUM 3
#define DCL_NONE DCL_PWM1
#define DCL_LED_KP DCL_PWM2
#define DCL_MAIN_LCD_BL DCL_PWM3
默认背光配置为isink pwm输出
void pmu6260_bl_init(void)
{
bl_support_level = BL_ISINK_LEVEL;
bl_use_pwm = DCL_TRUE;
}
用户自定义
void custom_pwm_configure(kal_uint8 gpio_dev_type, kal_uint32 level, kal_uint32 freq, kal_uint32 duty)
{
DCL_HANDLE pwm_handle;
PWM_DATA_T pwm_data;
switch(gpio_dev_type)
{
case GPIO_DEV_LED_MAINLCD:
pwm_handle= DclPWM_Open(DCL_MAIN_LCD_BL, MOD_UEM);
pwm_data.pwm_level = level;
pwm_data.pwm_duty = duty;
pwm_data.pwm_freq = freq;
DclPWM_Control(pwm_handle, PWM_CMD_SET_FREQ_BY_LEVEL, (DCL_CTRL_DATA_T*)&pwm_data);
DclPWM_Control(pwm_handle, PWM_CMD_SET_DUTY_BY_LEVEL, (DCL_CTRL_DATA_T*)&pwm_data);
DclPWM_Close(pwm_handle);
break;
default:
/* error undefine */
ASSERT(0);
}
}
背光对应的pwm处理
kal_bool custom_cfg_gpio_set_level(kal_uint8 gpio_dev_type, kal_uint8 gpio_dev_level )
{
...
level.pwm_level = gpio_dev_level;
pwm_handle= DclPWM_Open(DCL_MAIN_LCD_BL, MOD_UEM);
DclPWM_Control(pwm_handle, PWM_CMD_SET_LEVEL,(DCL_CTRL_DATA_T*)&level);
DclPWM_Close(pwm_handle);
如果想单独使用pwm3 ,这里的代码应该需要屏蔽
你可以做个试验
我的喇叭 和 马达 不工作,要怎么检查啊
喇叭的话你线路图里音频部分有没有按参考设计加全呢,有个耳机检测的脚如果不用要外部上拉,不然开机后进入的是耳机模式,喇叭就会没声音。
马达 的话是一个LDO输出,你用万用表量下+极有没有电压输出
如果没有再查下代码
贴片厂 随便找了60M 的软件 都可以让我的主板 喇叭 和 马达正常工作 。
我的喇叭 和马达 都是从60M 直接接出来的 。
那就叫你们的软件查下代码吧 看代码里面是不是有做改动
代码是原始的 ,我就是做软件的。afe.c 这个文件我也去看过 ,但是硬件上没有接对应的gpio 口,
是用6260 SPK_OUTN 和SPK_OUTP 俩个口接出来的 。
我现在要用GPIO0 不是isink 啊
60已经内置了1.2W 音频功放,接外放才需要改afe.c文件。
默认应该不需要做改动的
make 文件里 ACCDET_SUPPORT 你看下这个宏 是负责耳机检测的
不好意思,没仔细看,这个重新配置一下试试,codegen.dws 里GPIO setting GPIO0选PWM模式
PWM Setting 把PWM通道1 设置为MAIN_LCD_BL试试 把PWM 3 设为 NONE
还有,你改动的代码能否贴出来看看
if( gpio_dev_level == LED_LIGHT_LEVEL0)
{
GPIO_ModeSetup(gpio_led_mainbl_en_pin, 0);
}
else
{
GPIO_ModeSetup(gpio_led_mainbl_en_pin, 2);
}
PWM_level(gpio_dev_level);
照这样改了开不了机,不知道为什么
不是这么用的啊,50以后的架构就变了,你要按照他的框架来
没有例子哦,好像60的很少有人用背光ic的
