有客户用EP868编程器烧写STM8S103,并且用到了HSI校准功能。
发现有芯片始终无法校准成功。
经分析,该芯片的内部HSI校准位有4个值,其频率相同,测试结果见下表:
TRIM值 | 用示波器读出的STM8S输出频率(Hz) |
7 | 4.873 |
6 | 4.873 |
5 | 4.873 |
4 | 4.873 |
3 | 4.892 |
2 | 4.931 |
1 | 4.950 |
0 | 4.980 |
F | 5.010 |
E | 5.040 |
D | 5.061 |
C | 5.092 |
B | 5.123 |
A | 5.165 |
9 | 5.187 |
8 | 5.208 |
表中左边为写入CLK_HSITRIMR的值,右边为测试程序输出的方波频率,该频率在HSI为16MHz时,应该为5Hz。
可以看到,4、5、6、7这4个值,其HSI频率是一样的。
如果产品中使用HSI,并且会校准,这片芯片的校准范围相比规格书会不足。
使用EP868,可以挑选出有此问题的芯片。
实际上,EP868在校准时,对HSI的特性进行了智能化的分析,能保证:
1、HSI的校准特性符合规格书的内容,否则报错。
2、无需应用程序的实时校准,STM8S的HSI在全温度、全电压范围内,精度优于+-0.8%(4bit trim)或+-1.2%(3bit trim)
说明一点:
这片“问题”芯片仍然是符合规格书的,不能列为Bug。即:
1、该芯片能在全温度、全工作电压范围校准到16MHz
但不符合appnote 14983《STM8S high speed internal oscillator calibration》中的一句
“An increase in this trimming value causes a decrease in HSI frequency. The frequency
change per step is approximately 1%.”
建议ST在AppNote中加上说明。