最近硬件測試工程師反饋一個BUG,和IIC的時序有關(guān),這個BUG目前沒有帶來使用方面的影響,但是不符合規(guī)范,要求整改。我們使用的單片機是cortex-m3內(nèi)核的芯片,美信公司生產(chǎn),使用此芯片讀取電容屏的坐標(biāo)數(shù)據(jù)。目前電容屏都是自帶芯片的設(shè)計,芯片檢測到觸摸后產(chǎn)生一個GPIO中斷,單片機接收到中斷后讀取電容屏IC的坐標(biāo)數(shù)據(jù),使用比較簡單。
由于此款單片機手冊沒有給出IIC時序圖,硬件測試工程師把IIC的通用規(guī)范作為標(biāo)準(zhǔn)進行時序測試,認為以下兩個數(shù)據(jù)指標(biāo)不達標(biāo),此數(shù)據(jù)符合IIC快速模式(最高可達400kHz)標(biāo)準(zhǔn),但是不符合標(biāo)準(zhǔn)模式(最高100kHz)標(biāo)準(zhǔn)。這兩個時間參數(shù)只限制了最小值,是為了讓速率慢的IIC設(shè)備能夠正確的接收起始和停止信號,因為速率慢的器件反應(yīng)慢。
tHD_STA = 2.5us(標(biāo)準(zhǔn)是4us)
tSU_STO = 2.6us(標(biāo)準(zhǔn)是4us)
我們單片機操縱IIC接口的頻率是100kHz,測試人員認為其屬于標(biāo)準(zhǔn)模式,于是按照標(biāo)準(zhǔn)模式判定是否合格。因為此款產(chǎn)品是量產(chǎn)產(chǎn)品,并無市場反饋有實際問題,于是本著盡量不改動的原則和人家商討,100KHz正好是界限,也可以認為是快速模式,可以按照快速模式標(biāo)準(zhǔn)判斷,而且軟件操縱IIC并非GPIO模式方式,使用了硬件IIC接口,這兩個時間參數(shù)不可控,都是硬件行為,討論了半天,結(jié)果碰了一鼻子灰,被人家的執(zhí)著打敗了。解決辦法只有一個就是提高速率,讓它滿足快速模式標(biāo)準(zhǔn)。以下是速率提高至200kHz的測量結(jié)果,滿足了要求。
tHD_STA = 1.2us
tSU_STO = 1.3us
軟件上改速率很好改,無非是100改為200,換個數(shù)字而已,但是其它工作量比較大,因為是量產(chǎn)產(chǎn)品,而且這款屏幕有替代料,速率提高了,替代料也要測量是否工作正常,而且不能驗證一臺就拉倒了。這個問題真的有必要修改嗎?個人認為完全沒有必要,如果處于研發(fā)中的產(chǎn)品改了就改了,量產(chǎn)的產(chǎn)品完全沒有必要,而且有未知風(fēng)險,有時候是沒有辦法的事情。
解決這個問題的過程中,一直有個疑問,如果單片機的速率配置為100kHz以下,能否滿足標(biāo)準(zhǔn)速率標(biāo)準(zhǔn)呢?示波器抓了幾個速率的時間參數(shù)如下:
90kHz,不符合標(biāo)準(zhǔn)速率標(biāo)準(zhǔn)。
tHD_STA = 2.7us
tSU_STO = 2.9us
70kHz,不符合標(biāo)準(zhǔn)速率標(biāo)準(zhǔn)。
tHD_STA = 3.5us
tSU_STO = 3.7us
60kHz,符合標(biāo)準(zhǔn)速率標(biāo)準(zhǔn)。
tHD_STA = 8.3us
tSU_STO = 9.4us
從測量結(jié)果來看,這兩個時間參數(shù)是隨著速率降低不斷增大的,在70kHz-100kHz區(qū)間內(nèi),不滿足標(biāo)準(zhǔn)速率標(biāo)準(zhǔn)。所以說這款單片機的IIC接口還是有瑕疵的,如果某個標(biāo)準(zhǔn)速率的IIC器件工作在這個區(qū)間內(nèi),有可能對START和STOP信號識別錯誤,導(dǎo)致問題,當(dāng)然出現(xiàn)這種情況的概率很小。就算出現(xiàn)了,只要降低速率就能解決。
-
單片機
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635214 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1372瀏覽量
40289 -
IIC
+關(guān)注
關(guān)注
11文章
300瀏覽量
38333 -
時序
+關(guān)注
關(guān)注
5文章
387瀏覽量
37331 -
Cortex-M3
+關(guān)注
關(guān)注
9文章
270瀏覽量
59476
發(fā)布評論請先 登錄
相關(guān)推薦
評論