问答

汇集网友智慧,解决技术难题

21ic问答首页 - 谁能给解释下MS51FB9AE官方给提供的修改24M主频的函数?

s51 函数 rc iap se

谁能给解释下MS51FB9AE官方给提供的修改24M主频的函数?

taobaofarmer2020-09-11
本帖最后由 taobaofarmer 于 2020-9-12 15:35 编辑

官方给提供的例程,在Sample_Code->RegBased->Fsys_MoidfyHIRC->FSYS_MHIRC.C->MODIFY_HIRC(HIRC_24);函数里,该函数我给整理了下,只保留调整主频位24M的功能,代码如下:
void Make_HIRC_24MHz(void)
{
    u8 idata hirc_map0, hirc_map1;

    //Check if power on reset, modify HIRC
    SFRS = 0; //?1处

    IAPAL = 0x38;

    set_IAPEN;
    {
                IAPAH = 0x00;
                IAPCN = READ_UID;  //?2处
                set_IAPGO;
                hirc_map0 = IAPFD;
               
                IAPAL++;
                set_IAPGO;
                hirc_map1 = IAPFD;
    }
    clr_IAPEN;

        TA = 0xAA;
        TA = 0x55;
        {
                RCTRIM0 = hirc_map0;
        }
               
        TA = 0xAA;
        TA = 0x55;
        {
                RCTRIM1 = hirc_map1;
        }

        //禁止低功耗模式
        PCON &= CLR_BIT4;
}

首先说明这个函数在MS51FB9AE上执行是失败的,大体过程我知道,是从系统默认的配置里读出24M主频的高低字节配置信息,然后写入RCTRIM0和RCTRIM1里,但是在?2处,为何IAPCN的指令是READ_UID呢?这个指令不是读芯片内部96位unique id吗?
另外?1处 SFRS = 0;啥意思,难道是翻到SFR页0的意思吗?如果这是这样的话,SFRS寄存器是有TA保护的,单单SFRS = 0;是不行的呀?
回答 +关注 26
2334人浏览 22人回答问题 分享 举报
22 个回答
123下一页

您需要登录后才可以回复 登录 | 注册