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。 

七、串口波特率配置

      串口波特率的配置分两种,当BRGH = 0时,1bit需要 16个时钟,这时计算公式如下:

      

      当BRGH = 1时,1bit需要 4个时钟,这时计算公式如下:

      

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值