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

tps659113外部时钟切换问题

我们用的是APPRO的DM8127的IPNC.经查,原TPS659113的RTC时钟为RC时钟,每24小时会有约十分钟的误差。通过查寄存器DEVCTRL_REG其值为0X34.现在UBOOT中修改这个寄存器的值,无论是在配置中,还是在UBOOT最后端切换,UBOOT都无法执行下去,程序就定在那里。初始是在电源和时钟配置完成后,直接进行切换,发现死机。后根据一些单片机切换外部时钟的常识,对该时钟切换:即先掉时钟,用rtc_freeze函数,然后切换外部时钟。EXTERNEL_RTC_SOUCE.并延时等待相当长时间后,开启RTC时钟,RTC_RUN();结果发现仍然死机。代码如下:

rtc_freeze();
    externel_rtc_clock();//zjq20140901    
    for (i = 0; i<0xffff; i++)
    {
        for(j = 0; j<0xfffff; j++){

        }
        //    printf("%c",ti814x[i][j]);
        //    printf("\n");
    }
    rtc_run();

这些代码放在UBOOT那里,就死在那里,请问如何才能从RC切换到外部晶体而死机?

另:我在UBOOT正常启动的情况下,直接修改DEVCTRL_REG为0x14后,可以切换到外部晶体,且RTC时钟24小时为秒级误差。

Eason Wang:

基于上面的试验,我觉得修改应该没有那么复杂,你试过在代码里面直接修改这一位不行吗?

jq zzz:

回复 Eason Wang:

直接用RUN_COMMAND()函数调用执行I2C WRITE 0X2D 0X3F 0X14即可。在tps659113_rtc中处任意修改函数,会导致电源都无法起来。而在UBOOT的MAIN函数里修改POWER_control函数,增加切换功能,都会死机。所以最的还是采用了直接调用命令脚本的方式。

赞(0)
未经允许不得转载:TI中文支持网 » tps659113外部时钟切换问题
分享到: 更多 (0)