![shequ.stmicroelectronics.cn](./template/st_v1/static/img/logo2.png)
STM8AF系列可以通过Flash Loader Demonstrator用lin总线刷写程序吗
STM8S003F3U6 请求各位大佬支援,但是遇到如下问题。。。这样就一定是这颗芯片的问题吗?
STVD如何生成库文件
STM8 flash 库函数 startaddress = startaddress + ((uint32_t)BlockNum * FLASH_BLOCK_S
stm 8 flash 在RAM运行代码的问题,是不是库函数有问题 Library call (?sll32_l0_l0_a) from within a
STM 有能替代MCHC912B32CFUE8 / NXP的型号吗?
STM8S的CAN总线使用
STM8L151在使用DAC功能后严重发热
STM8 IIC SLAVE 400K
STM8S 定时器1互补输出pwm
高精度时钟晶振偏差时间是多久?
32.768KHz晶振,我们习惯称为时钟晶振,一般钟表类产品中少不了使用它,今天深圳市中科晶电子有限公司销售部人员接待了一个老客户,想采购高精度的时钟晶振32.768KHz,并向销售人员询问,高精度晶振可以保证一天的时间误差是多少?
这个问题有部分的用户也想知道答案,晶振是不是精度越高,做好的钟表产品就一定更精准?
答案是:晶振的精度的确影响钟表的精准度,但是,钟表的精准度绝对不是完全被晶振的精度决定。为什么这么说呢?因为,晶振的精度ppm值,它决定的只是晶振这一个元器件的频率误差,而整个钟表的精准度是由内部完整的振荡电路决定,前文有说过,一个完整的振荡电路除了晶振还有电容和IC等等这些元器件,这些电子元件都影响着整个振荡电路的效果,也就是说,它们都会影响钟表成品的精准度,导致钟表产生误差。客户关心的钟表误差时间当然就不可以只通过晶振的精度来决定了。
晶振的精度范围是 5ppm,一天的时间误差:
5(ppm)×24(一天24小时)×60(一小时60分钟)×60(一分钟60秒)
= 432000*1/1000000
= 0.423 S
20ppm: (20/5)*0.423=1.692 S
30ppm: (30/5)*0.423=2.538 S
(20ppm)的晶振,一天的误差小于5s。我建议你可以尝试下我的这种方法。在程序初始化之前,先配置好系统时钟和高级定时器1。做个这样的程序 TmrEnable
();for(i=0;i<100M;i++) nop(); 读TmrCounter和定时器中断次数。采用嵌套的形式,别用32位数。打样时样板也有10块,你就多搞几块。然后记录下他们的值,计
算出平均值(100M几秒钟也就完了,要提高精度,可以再把时间调的长一点)。然后再让板子正常工作,定时一天,看看它们的
误差是多少,计算出平均误差。这两次的误差是线性关系的。由运行一天的误差算出误差百分比。就能算出在这100M次循环计数中,他的平均误差有多少。由这100M
再算1M次的标准值。以后每个产品出厂的时候,初始化程序时,都作1M次的计数。用前面计算的标准值,来计算出修正后的值。将这个值保存在EEPROM中或都变量中
。100M计算的参照物是外部晶振。运行一天的参照物是标准时间。经过两次计算,晶振和单片机本身的误差得到了修正。以后每次上电都自动修正,这样环境因素的影响也得到了一定程度的修正。个人见议如果成本允许的话,还是搞个外部时钟吧。我这个是公司强烈要控制成本时不得以才做的。现在拿出来希望能帮到你。