您的位置:阿仪网 > 其他产品/服务 > 其他产品/服务 > 其他产品/服务 > 沈阳芯硕科技有限公司 > 产品展示 > 芯片组 > 华大单片机RTC补偿说明

联系我们

联系人:宣女士

点击查看联系方式

产品展示

华大单片机RTC补偿说明

华大单片机RTC补偿说明

点击次数:145

价格:¥电议

更新日期:2021/8/9 13:59:54

生 产 地:中国大陆

产品型号:

简单介绍:华大单片机有些型号带有RTC功能模块,提供、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。

商家名片
宣**
联系我时,请说明是阿仪网看到的,谢谢!
  • 电话: 02*******900
  • 手机: 18******453
  • 微信:
  • 交换名片后展示联系方式 → →
相关标签:华大单片机,,华大MCU,,低功耗MCU

详细内容

华大单片机有些型号带有RTC功能模块,提供、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。RTC时钟模块的时钟源可以选用内部低速时钟、外部低速时钟和外部高速时钟。内部低速时钟全环境范围(VCC = 1.8 ~ 5.5V,T AMB = -40 ~ 85°C)下为正负5%,这种精度不能满足计时时间要求严格的使用。用户想要得到高精度的计时就必须使用外接晶振。使用外接晶振后并不是无误差,只是降低了误差,如果还想得到更高的精度还需要对RTC进行补偿。


补偿原理说明与计算:
由于计数器采用 32.768KHz 的时钟计数,如果需要对每精度进行补偿时,只能按照 32.768KHz 的整数周期补偿,则每补偿的小单位为(1/32768)*10 6 =30.5ppm,无法满足高精度的要求。那么要在 32.768KHz 的计数时钟下实现精度较高的时钟补偿时,需要在算法上做调整,将补偿周期扩大 32 倍。则在只能补偿的小单位为 30.5ppm 的情况下,平均每的补偿单位变为为 30.5ppm/32=0.96ppm。满足了精度较高的时钟补偿要求。而且补偿发生在每 32 内比较均匀的范围内。所以,该寄存器中引入了 5 位小数的设定。
设定值计算如下:

如果补偿目标值为 +20.6ppm,计算相应的寄存器值如下:

如果补偿目标值为-20.6ppm,计算相应的寄存器值如下:



补偿代码如下:
int16_t RTC_err; //一天内误差多少
float RTC_Value = 0;
RTC_Value=RTC_err/(24*60*60) *(1000000); //将误差转换为PPM
RTC_Value=RTC_Value*32768/1000000;
RTC_COM = Change_FloattoBin(RTC_Value); //取2的补码
M0P_RTC->COMPEN_f.CR = RTC_COM;

uint16_t Change_FloattoBin(float data) //取2的补码部分
{
float data1 = data;

uint16_t temp_data=0;
uint16_t temp_data1=0;
uint8_t i,data_inter;

if(data<0)
{
data=-data;
}
data_inter = (uint8_t)data;
data-=data_inter;
for(i=0;i<6;i++)
{
data = data*2;
if(data>=1)
{
data-=1;
temp_data|=1<<(5-i);
}
}
temp_data|=(data_inter<<6);
if(data1<0)
{
temp_data=~temp_data+1;
}
else
{
temp_data1=temp_data;
}
temp_data1=temp_data;
temp_data1>>=1;
temp_data1+=0x20;
temp_data1&=0x1ff;
return temp_data1;//取低9位补偿值
}
华大单片机,,华大MCU,,低功耗MCU

采购记录

优质供应

相关文章

  • 友情链接
  • 热词推荐
在线咨询5分钟应答

提交