当前位置:首页 > 单片机 > 单片机
[导读]1 前言客户反馈在批量生产阶段,发现部分产品的MCU的RTC在低温(0℃)下工作不正常,但是在常温下又是正常的,且其他正常的MCU的RTC在常温与低温下都是正常的。2 问题跟进与分析通过与客户邮件沟通,了解到客户使用的

1 前言

客户反馈在批量生产阶段,发现部分产品的MCU的RTC在低温(0℃)下工作不正常,但是在常温下又是正常的,且其他正常的MCU的RTC在常温与低温下都是正常的。

2 问题跟进与分析

通过与客户邮件沟通,了解到客户使用的MCU型号是:STM32F030C6T6TR。在产品的主从结构中主要用作电源管理和时钟管理。通过客户的描述,似乎相同型号不同片子都存在较大的差异。

由于时间紧急,在了解到初步信息后立即拜访客户,针对客户认为有问题的MCU芯片做针对性试验。通过STM32CubMx生成测试工程,分别使用LSI(40K),LSE(32.768K),RTC工作时每秒通过LED1(PB5)取反一次(通过LED1灯是否闪烁来指示RTC是否工作正常),然后分别测量OSC管脚与PA8脚(输出LSI或LSE),并对比ST官方的NUCLEO-F030板,最终测试结果如下:

Test itemTemperatureLow-speed clock typeLED1(use PB5 to indicate the RTC status)OSC pinPA8 output clockUse Customer board without any modifyIndoor temperature(25℃)Use LSI(40KHz)OK(Flash every second)N/AOK(Output 40K waveform)Use Customer board without any modifyUnder the low temperature(0℃)Use LSI(40KHz)OK(Flash every second)N/AOK(Output 40K waveform)Use Customer board without any modifyIndoor temperature(25℃)Use LSE(32.768KHz)OK(Flash every second)32.768K waveformOK(Output 32.768K waveform)Use Customer board without any modifyUnder the low temperature(0℃)Use LSE(32.768KHz)Failed(no flash)32.768K waveform detectedFailed(no output waveform)Use the Customer board and modify the LSE load capacitance value to 6.8pFIndoor temperature(25℃)Use LSE(32.768KHz)OK(Flash every second)32.768K waveformOK(Output 32.768K waveform)Use the Customer board and modify the LSE load capacitance value to 6.8pFUnder the low temperature(0℃)Use LSE(32.768KHz)OK(Flash every second)32.768K waveformOK(Output 32.768K waveform)Use ST Nucleo-F030 boardIndoor temperature(25℃)Use LSE(32.768KHz)OK(Flash every second)32.768K waveformOK(Output 32.768K waveform)Use ST Nucleo-F030 boardUnder the low temperature(0℃)Use LSE(32.768KHz)OK(Flash every second)32.768K waveformOK(Output 32.768K waveform)


表1 测试内容


通过测试结果,我们得到如下信息:


当使用LSI时,无论常温还是低温下都能正常工作。

当使用LSE时,常温下能正常工作,但在低温(0℃)时,RTC不再工作(LED1停止闪烁),且PA8管脚无输出,但保持为高电平,且此时OSC管脚此时是存在32.768K的波形的。

通过修改负载电容C1&C2的电容值从5.1pF修改到6.8pF时,原本低温下不工作的RTC又能恢复正常工作。

对比ST官方的NUCLEO-F030板子,在常温与低温下均能正常工作。


图1 OSC脚在低温下的波形



图2 PA8管脚在低温下的波形


从测试结果来看,通过修改负载电容的方式能让原本不能正常工作的RTC恢复正常工作,这个似乎为客户的负载电容不能精准的匹配系统的原因所致。

但客户对于这种解释是不接受的,理由是现在设计的负载电容5.1pF是通过测试后的值,精度可以达到6.5ppm,但如果改为6.8pF,那么精度将会变到大约30ppm,这个会严重影响到MCU的RTC的时间精准度,系统在长时间运行后,时间必然会偏差很大,超出设计合理范围,这个是不允许的。

3 问题分析

既然客户不接受修改负载电容,那么首先我们重新梳理下客户的晶振设计各种参数是否准确,客户的LSE电路设计如下所示:


图3 LSE电路设计


如上图,图中的MR10 10Mohm这个反馈电阻在实际电路中是没有加的,晶振使用的是TXC的,从晶振厂商提供的数据手册中得到相关参数如下:


indexparametersSymTypicalUnit1Nominal FrequencyF032.768KHz2Load CapacitanceCL7.0pF3Equivalent Series ResistanceESR70K?4Shunt CapacitanceC01.0pF


表2 晶振参数


再者,由于客户代码中使用的LSE drive配置的是最高等级,从下图芯片对应的数据手册中可以找到对应的gm值为25uA/V,此时的驱动电流为1.6uA:


图4%20LSE驱动能力与跨导对应的关系(理论值)


上图有提到AN2867这个文档,于是我们打开这个文档,在3.4节,发现有这个要求:


图5 LSE对gain margin的要求


也就是要求gain margin的值要求大于5,这样晶振才能正常起振,那么gain margin又是如何计算的呢?接下来找到gainmargin 的计算公式,如下:


图6 gain margin的计算公式


其中gm就是图4中从数据手册中提到的跨导值,STM32F030 LSE的不同驱动等级对应着不同的gm值,由于我们的测试代码使用的是CubeMx自动生成的代码,其默认使用的是最高等级,且客户使用的也是最高等级,因此,这个得出的gm值为25 uA/V, gm有了,那么上面公式中的gmcrit又该如何计算,我们接下来找到它的计算公式,如:


图7 g_mcrit的计算公式


通过晶振对应参数,我们可以得出:
ESR =70KΩ, C0 =1.0pF, CL =7.0pF, 而F就是LSE的频率,为32.768KHz.
于是:
g_mcrit =4 * 7E4 * POWER(2*PI()32768,2)POWER ((1.0E-12 + 7.0E-12),2) =7.6E-07
最终得到:
gain_magin =gm/g_mcrit =2.5E-05/7.6E-07 =32.89
这个值是远大于5,因此,理论上不会存在晶振不起振是的问题,实际上当在低温下,之前在测试中也有发现晶振也是有起振,有波形输出的,只不过PA8脚没有波形输出,那个又是什么问题呢?


提交给division,最终定位到LSE的驱动等级过高,在AN2867这个文档中,有这样的描述:


图8 使用高驱动模式的注意事项


也就是说,在STM32F0和STM32F3中,当使用最高驱动模式(gm_crit_max=5uA/V)时,对应地应该只使用在CL=12.5pF的晶振上,以此避免振荡回路饱和,从而导致启动失败。若此时使用了一个较小的CL(如CL=6pF),那么会导致振荡频率不稳定和工作周期可能被扭曲。


AN2867随后给出了一张表,列出了驱动等级与gm_min、gm_crit_max的关系,如下:


图9 STM32各系列的gm_min与gm_crit_max关系


如上图,对于STM32F0,当使用最高驱动模式High时,此时的gm_min=25 uA/V,这个与数据手册中是一致的,另外gm_crit_max =5uA/V,正是上面所描述的。


也就是说,在使用最高驱动模式下,此时与之对应的CL应该使用12.5pF,而客户所使用的CL是7pF,这个与手册建议的内容是不相符的。从图4可以看出,在最高驱动等级模式下,此时驱动电流最大(1.6uA),但这里使用了一个比较小的负载电容(CL=7pF),按AN2867所述,此时有可能导致振荡回路饱和,振荡不稳定,工作周期扭曲。

此时,应该对应地下调这个LSE驱动等级,减小驱动电流,这里按比例估算的话(12.5pF/1.6uA=7pF/xuA == > x=1.6*7/12.5 =0.89uA ),这里除了最高档可以外,其他都可以,保守起见,使用Medium High相对合适。

打开STM32F030的参考手册,在7.4.9节中:


图10 RCC_BDCR寄存器


如上图,将LSEDRV[1:0]这两个为修改为10即可,将原先低温下RTC有问题的MCU芯片修改后再次放到低温下进行验证,测试结果为正常。由于此问题是部分芯片有可能会出现的问题,客户需要对修改后的芯片进行持续跟踪,至今没有再反馈出现过此问题,由此,此问题基本算是解决。


另外,从图1中所作的测试结果来看,实际上,在低温条件下,RTC出现问题的时候,OSC pin还是能正常捕捉到波形,只不过,PA8脚这个MCO上没有波形,只是维持在高电平。于是,对于驱动电流过大所导致的振荡回路饱和,振荡不稳定,工作周期扭曲,这里理解为MCO脚与MCU内部振荡回路的连接点,也就是MCO所表现的波形。

3 总结

AN2867这个文档总结了关于STM32晶振匹配方面的信息。里边有提到,负载电容CL值越大,所需的驱动电流也就越大,但牵引度越小。这也就解释了表1中通过增大C1&C2的电容值,原本出现问题的RTC能恢复正常的现象,这是由于C1&C2的电容值变大将导致负载电容CL变大,进而对应所需的驱动电流也就跟着增加,这反而减少了在高驱动模式情况下振荡回路出现饱和的机会。

在一般情况下,关于晶振这方便我们往往比较关注的是gain margin的计算,它的值太小的话会导致不起振,但同时,我们也应该适当关注由驱动电流过大导致振荡回路饱和的情况。

AN2867这个文档的中文版是精简版,若要真正研究的话,建议还是看英文原版。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

摘要:碟簧液压操动机构广泛应用于高电压等级的断路器产品中,当环境温度极低时,机构的输出特性会发生较大变化,进而影响电网的稳定性。鉴于此,研究了在低温环境中对碟簧液压操动机构的温度补偿措施,以保证机构动作的稳定性。

关键字: 碟簧液压操动机构 低温 加热器

摘要:氢能是当前非常热门的能源,其燃烧后只产生水,具有零碳排放的优点。江苏长隆石化装备有限公司设计了一台专门用于装卸液氢的鹤管,属于非常前沿的装备技术。现对其结构、工艺、绝热设计进行介绍,并通过计算校核其绝热性能和结构可...

关键字: 装车 鹤管 低温

摘 要:低噪声放大器是接收机系统的重要模块。介绍了应用于P波段的低温低噪放大器的设计和调试方法,通过使用 PHEMT晶体管,按照最小噪声系数设计,采用两级级联,并引入源级负反馈和电阻并联负反馈来提高系统稳定性。在77 K...

关键字: 低温 低噪声放大器 稳定性 噪声系数

关于低温对锂离子电池的影响,你知道有哪些吗?在生活中,你可能接触过各种各样的电子产品,那么你可能并不知道它的一些组成部分,比如它可能含有的锂离子电池,那么接下来让小编带领大家一起学习低温对锂离子电池的影响。

关键字: 低温 锂离子 电池

  2016年2月26日,德国慕尼黑和西班牙巴塞罗那讯——赢得消费者的信任对于智能移动设备支付解决方案至关重要。作为全球最大的安全芯片供应商之一,英飞凌科技股份公司(FS

关键字: rtc 机器人 rx8010sj

等离子体处理机适用于各种等离子体清洗、表面活化和附着力改善的应用。这些功能用于半导体制造、微电子封装和组装,以及医疗和生命科学设备制造商。低温等离子清洗机利用低温等离子体进行表面处理,使得材料表面产生各种的物理化学变化,...

关键字: 低温 等离子 表面活化

随着科学技术的发展,LED技术也在不断发展,为我们的生活带来各种便利,为我们提供各种各样生活信息,造福着我们人类。随着LED技术的快速发展,在国内的许多城市,道路照明已经不乏LED路灯的身影。尤其是大功率LED器件的光效...

关键字: LED 低温 道路照明

博主使用的是天嵌的开发板型号IMX6Q_coreC。1.发现使用开发板是时间总是被设置为2028年6月18日3时41分,一开始以为是底层驱动的问题, 故去底层加打印信息调试。2.发现在系统内hwclo

关键字: Linux rtc

比较F1的片子对于F4的RTC来说有很大提升,F4的RTC提供了日历时钟和两个可编程闹钟中断,一个周期性可编程唤醒标志。这样很方便设置系统时间,并不会像F1的RTC那样要自己计算年月日时分秒。F4的RTC是一个独立的BC...

关键字: rtc stm32f4

  RTC-Real Time Clock是430单片机的实时时钟模块,可以配置成实时时钟模式(万年历)或者一般目的的32位计数器模式,其中实时时钟模式提供了年月日、时分秒,可以选择BCD码或者二进制格式,并且具有可编程...

关键字: MSP430 rtc 单片机 实时时钟
关闭
关闭