PIC单片机的学习——时钟的配置与相关外设的一些计算

一、概念

       Fcy是CPU时钟,Fosc晶振频率。Fcy = Fosc/2,也就是CPU时钟是晶振频率的1/2。

二、开发环境

      IDE:MAPLABX

      MCU型号:PIC24EP64GP204

三、系统时钟的配置

      例子如下:

    //系统时钟初始化 产生55.296M //11.0592M晶振
    // Fosc= Fin*M/(N1*N2), Fcy=Fosc/2
    // Fosc= 11.0592M*60/(2*3)=110.592Mhz for 11.0592M input clock
    // Fcy= Fosc/2 = 55.296MHZ 
    PLLFBD = 58;          //M=PLLFBD+2=60
    CLKDIVbits.PLLPOST = 0; // N2=2*(PLLPOST+1)=2
    CLKDIVbits.PLLPRE = 1; // N1=PLLPRE+2=3
    OSCTUN = 0x0000;
    //为1表示PLL处于锁定状态
    while (OSCCONbits.LOCK != 1);

四、I2C速率配置

       PIC支持100kHZ和400kHZ的两种I2C总线规范。启用I2C时要先配置I2CxBRG寄存器的值来产生相应的速率,公式如下:

FSCL为I2C的时钟速率,即I2C总线速率。要产生100kHZ的速率,则波特率寄存器的值为((FCY/FSCL)/2)-1,得I2CxBRG得值约为275。

五、看门狗定时时间的计算

       PIC单片机内部自带32kHZ的看门狗定时器,看门狗定时时间由看门狗后置分频和预分频决定,计算公式如下:   

       T = WDTPOST*WDTPRE/32kHZ 

      T为定时时间,其中WDTPOST:后置分频,WDTPRE:预分频 由MAPLAB X直接配置:

六、定时器定时时间的计算

       如果没有配置使用外部时钟TxCK,则使用的是内部时钟Fosc/2,计算定时时间时还要考虑输入时钟的分频比通过配置TxCON实现。

       定时时间 T = (PR1 - TMR1) / ((Fosc / 2 )/ 分频比);

假设振荡时钟配置为8MHZ,分频比为1:256,计数器值PR1为155,初始值TMR1为0,则定时时间为 T = 155 / ((8000000 / 2) / 256)≈ 10ms。 

猜你喜欢

转载自blog.csdn.net/wanruiou/article/details/104946739