引言
某客戶使用 STM8AL 時(shí),由于設(shè)計(jì)限制需使用 HSI 作為系統(tǒng)時(shí)鐘。為減小 HSI 偏差,使用 LSE 對(duì)其進(jìn)行校準(zhǔn)。小批量試產(chǎn)發(fā)現(xiàn) 3%左右產(chǎn)品校準(zhǔn)后頻率和 16MHz 偏差較大。
調(diào)研
檢查客戶代碼,和 ST 官方提供的演示代碼 STM8L15x_AN3101_FW_V1.1.0 一致,跟蹤代碼執(zhí)行,未發(fā)現(xiàn)異常,初步排除代碼移植問(wèn)題。
由于校驗(yàn)結(jié)果直接受 LSE 影響,查閱參考手冊(cè)和數(shù)據(jù)手冊(cè)可知,LSERDY 置位僅表示 LSE起振成功,LSE 震蕩頻率需要額外等待一段時(shí)間 tSU(LSE)才會(huì)穩(wěn)定;不同晶振這個(gè)時(shí)間會(huì)有很大差異。
處理
將此延遲逐步增加到 90ms,保證 LSE 穩(wěn)定下來(lái)。這樣操作后,發(fā)現(xiàn)所有之前異常的板子校準(zhǔn)結(jié)果都是好的。按此延遲再次加工一批板子,校準(zhǔn)結(jié)果也是正常的。
小結(jié)
當(dāng)我們?cè)趹?yīng)用中碰到跟時(shí)序相關(guān)問(wèn)題時(shí),最好先仔細(xì)閱讀 MCU 數(shù)據(jù)手冊(cè)、參考手冊(cè)對(duì)相關(guān)模塊特性的描述,并結(jié)合代碼進(jìn)行分析。