用KL26做了一个低功耗的小产品,现在因为订购芯片型号不同出现一个严重的问题,希望得到对KL26比较熟悉的大神指导一下
环境描述:
1、我是使用飞思卡尔官网提供的usb-stack-v4.1.1修改了MSD的内容实现我们的产品需求,产品功能上已经实现了;
2、因为要使用低功耗的功能,进入低功耗的模式是lls,lptmr定时1S(自动重装载定时)从低功耗模式唤醒,lptmr的时钟源是内部的lpo(1Khz+30%),唤醒后处理系统的外设,然后再次进入lls低功耗模式(外设处理时间 50ms 左右),并使用这个1S定时器实现一个日历的功能
3、第一次订购的样片型号是MKL26Z128VLH4,第二次订购型号是MKL26Z256VLH4(从数据手册上我只发现芯片的FLASH和SRAM有差别);现在我做了6块样板,3块使用Z128的芯片,3块使用Z256的芯片;烧录的时候分别使用对应的MKL25Z128xxx4.icf和MKL26Z256xxx4.icf的配置文件(这两个文件是从iar的安装目录复制出来的),并对应修改了工程options项中的芯片选型,全部编译之后烧录下载到芯片
4、使用的开发环境是iar for arm-7.20
问题描述:
焊接Z128芯片的样板系统、时间日历运行正常;焊接Z256的芯片系统运行正常,但是时间日历上每天会慢大概40~55分钟
问题猜测及实验:
1、lpo的误差(±30%)及温漂
±30%的误差数据是从 AN4503: Power Management for Kinetis and ColdFire+ MCUs (34页第二行描述)
The PMC is the source of the low-power oscillator (LPO) that is made available as a clock source to modules. The LPO runs
at a nominal frequency of 1 KHz +/– 30%. It is not very accurate over temperature and voltage but it can operate in all power modes. This clock can be the source of clock to a number of modules in the MCU including the LPTMR, the reset filter, theLLWU pin filters, and the LCD controller, so that they in turn can have a clock in the lowest of power modes. See thereference manual configuration sections for each module. The clock options available are detailed in tables.
从上述描述来看影响LPO精度的有电压、温度等因素;产品及测试的整个过程中我们的电压是确保稳定的;测试的时候,用lptmr定时50ms,在io上做一个电平的翻转测试;丢冰箱(零下25度)和加热测试(75度)条件下,使用示波器观察,Z128的芯片io口测得的周期在50、51ms上跳;Z256的芯片在50、51、52ms上跳;测试时间持续半个小时,发现温度对lpo1Khz没有很明显的影响(或者是我使用的示波器精度不够高 60Mhz)
使用Z256每天慢40~50分钟在程序上是可以修正的,但是不明白的是这芯片型号不同就有这么大的差距,如果我们在后期批量出产品的时候每一批次的产品都做不同额修正??这个很难接受
1、因为现在小批量订购需要拿一盘(1600片);上面的问题没有合适的解决办法的话,如果出现严重问题就杯具了!!!!!
2、如果增加有源晶体,功耗、成本会增加,用这个芯片就没优势了
在目前的条件下,希望有这方面经验的高手可以指点一下 |