0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

IIC時序問題的解決方法

CHANBAEK ? 來源:硬件工程師技術干貨 ? 作者:硬件工程師技術干 ? 2023-06-14 17:52 ? 次閱讀

最近硬件測試工程師反饋一個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)

wKgaomSJimSAfUYtAAIwUQj_MVo682.jpg

wKgZomSJimSAK_35AAN77UkVDk0062.jpg

wKgaomSJimSAUoc3AAJHoX9taps725.jpg

wKgZomSJimSAPbO7AAIwYdqMNSw884.jpg

我們單片機操縱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

wKgaomSJimSAWnLnAAIxthkuK8Y144.jpg

wKgZomSJimSAaJtuAAI3N3oqwjg647.jpg

軟件上改速率很好改,無非是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

wKgaomSJimSAZL64AAJRPXIKZEw029.jpg

wKgZomSJimSAQrftAAJI8Ct72XE854.jpg

70kHz,不符合標準速率標準。

tHD_STA = 3.5us

tSU_STO = 3.7us

wKgaomSJimSAIofyAAJL-5vwuOM249.jpg

wKgZomSJimSAIw7KAAJRKunywhM535.jpg

60kHz,符合標準速率標準。

tHD_STA = 8.3us

tSU_STO = 9.4us

wKgaomSJimWAZ6oxAAJLLdHscDA761.jpg

wKgZomSJimWADFJUAAJEN-PboEQ425.jpg

從測量結(jié)果來看,這兩個時間參數(shù)是隨著速率降低不斷增大的,在70kHz-100kHz區(qū)間內(nèi),不滿足標準速率標準。所以說這款單片機的IIC接口還是有瑕疵的,如果某個標準速率的IIC器件工作在這個區(qū)間內(nèi),有可能對START和STOP信號識別錯誤,導致問題,當然出現(xiàn)這種情況的概率很小。就算出現(xiàn)了,只要降低速率就能解決。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6030

    文章

    44491

    瀏覽量

    632011
  • 內(nèi)核
    +關注

    關注

    3

    文章

    1361

    瀏覽量

    40185
  • IIC
    IIC
    +關注

    關注

    11

    文章

    298

    瀏覽量

    38241
  • 時序
    +關注

    關注

    5

    文章

    384

    瀏覽量

    37249
  • Cortex-M3
    +關注

    關注

    9

    文章

    269

    瀏覽量

    59406
收藏 人收藏

    評論

    相關推薦

    IIC按照時序圖編寫子函數(shù)

    按照IIC時序編寫的程序
    發(fā)表于 11-05 20:37

    實現(xiàn)嵌入式硬件通信IIC接口管理、IIC時序

    本文將要講解和實現(xiàn)的內(nèi)容主要分為兩個部分:代碼實現(xiàn)IIC接口管理、代碼實現(xiàn)IIC時序。IIC接口管理接口管理的目的是想在后期擴展時,一個工程里可使用多個
    發(fā)表于 01-04 07:00

    IIC總線時序啟動時序

    配合實現(xiàn),傳輸速率包含標注準(100kps)、快速(400kps)、高速(3.4Mbps)三大類。2. IIC總線時序啟動時序:當SCL為高電平時,SDA下降沿,表示啟動。...
    發(fā)表于 11-29 06:20

    采用IIC硬件時序讀寫AT24C08的方法步驟

    時序的,上篇文章已經(jīng)介紹了采用IIC模擬時序讀寫AT24C02,這篇文章介紹STM32的硬件IIC配置方法,并讀寫AT24C08。文章地址:
    發(fā)表于 11-30 07:48

    配置STM32的IIC硬件時序讀寫AT24C02和AT24C08

    時序的,本文采用的是模擬時序,下篇文章就介紹配置STM32的IIC硬件時序讀寫AT24C02和AT24C08。模擬時序更加方便移植到其他單片
    發(fā)表于 12-08 06:27

    IIC時序的特征有哪些

    IIC時序理解IIC 的特征:兩條總線:串行數(shù)據(jù)總線(SDA)和串行時鐘總線(SCL)數(shù)據(jù)有效性規(guī)定:IIC總線在進行數(shù)據(jù)傳輸時,SCL在高電平區(qū)間,SDA上的電平必須保持穩(wěn)定SDA的
    發(fā)表于 01-07 06:05

    IIC的定義及其時序簡析

    IIC的一些定義后,要想寫代碼必須知道它的時序。一、空閑狀態(tài),IIC在空閑狀態(tài)時SDA和SCL都是處于高電平。二、開始信號,當SCL電平不發(fā)生變化的時候,SDA由高電平變?yōu)榈碗娖降倪@一個過程...
    發(fā)表于 02-23 06:07

    使用IIC驅(qū)動讀取AP3216C傳感器時出錯怎么辦

    IIC傳輸數(shù)據(jù)但不發(fā)送結(jié)束信號的情況下,IIC的SCL線不能被拉高,從而發(fā)送下一個起始信號于是自行拉高SCL(PC0引腳),結(jié)果正確請問是否有更好的解決方法
    發(fā)表于 11-10 10:13

    24C02中IIC總線的應答信號(ACK)時序圖分析

    24C02中IIC總線的應答信號(ACK)時序圖分析,很好的單片機學習資料。
    發(fā)表于 03-21 17:30 ?93次下載

    STM32入門開發(fā): 采用IIC硬件時序讀寫AT24C08(EEPROM)

    STM32入門開發(fā): 采用IIC硬件時序讀寫AT24C08(EEPROM)
    發(fā)表于 11-21 13:51 ?47次下載
    STM32入門開發(fā): 采用<b class='flag-5'>IIC</b>硬件<b class='flag-5'>時序</b>讀寫AT24C08(EEPROM)

    STM32F103 模擬IIC時序

    STM32F103 模擬IIC時序
    發(fā)表于 11-25 09:51 ?34次下載
    STM32F103  模擬<b class='flag-5'>IIC</b><b class='flag-5'>時序</b>

    STM32入門開發(fā): 介紹IIC總線、讀寫AT24C02(EEPROM)(采用模擬時序)

    時序的,本文采用的是模擬時序,下篇文章就介紹配置STM32的IIC硬件時序讀寫AT24C02和AT24C08。模擬時序更加方便移植到其他單片
    發(fā)表于 11-25 20:06 ?39次下載
    STM32入門開發(fā): 介紹<b class='flag-5'>IIC</b>總線、讀寫AT24C02(EEPROM)(采用模擬<b class='flag-5'>時序</b>)

    時序不滿足的典型案例及解決方法

    原先的時序報告: 根據(jù)時序報告中的路徑提示,在ILA的某個路徑上建立時間過長,而程序中并未例化ila的核,只是使用了chipscrop.。所以猜測是chipscrop部分的路徑時序不收斂。 于是去除
    發(fā)表于 08-22 09:19 ?1707次閱讀

    有關AXI IIC和PS IIC的自調(diào)試技巧

    AXI IIC 和 PS IIC 控制器都符合 NXP IIC 總線規(guī)范。用戶必須確保其選擇使用的從設備的時序參數(shù)與UM10204 的第 48 頁上的“表 10”中的參數(shù)相同。
    發(fā)表于 08-25 10:29 ?1702次閱讀

    電源時序器跳閘的原因和解決方法

    電源時序器跳閘是一個常見的電氣問題,它可能由多種因素引起,包括電源電壓不穩(wěn)定、電路短路、過載電流以及時序器本身的故障等。下面將詳細分析電源時序器跳閘的原因及相應的解決方法。
    的頭像 發(fā)表于 09-29 16:28 ?439次閱讀