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