引言
某客戶使用 STM8AL 時,由于設(shè)計限制需使用 HSI 作為系統(tǒng)時鐘。為減小 HSI 偏差,使用 LSE 對其進(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)異常,初步排除代碼移植問題。
由于校驗(yàn)結(jié)果直接受 LSE 影響,查閱參考手冊和數(shù)據(jù)手冊可知,LSERDY 置位僅表示 LSE起振成功,LSE 震蕩頻率需要額外等待一段時間 tSU(LSE)才會穩(wěn)定;不同晶振這個時間會有很大差異。
處理
將此延遲逐步增加到 90ms,保證 LSE 穩(wěn)定下來。這樣操作后,發(fā)現(xiàn)所有之前異常的板子校準(zhǔn)結(jié)果都是好的。按此延遲再次加工一批板子,校準(zhǔn)結(jié)果也是正常的。
小結(jié)
當(dāng)我們在應(yīng)用中碰到跟時序相關(guān)問題時,最好先仔細(xì)閱讀 MCU 數(shù)據(jù)手冊、參考手冊對相關(guān)模塊特性的描述,并結(jié)合代碼進(jìn)行分析。