找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3732|回復(fù): 6
收起左側(cè)

關(guān)于MCU軟件模擬IIC的時序 求分析

[復(fù)制鏈接]
ID:474802 發(fā)表于 2020-3-22 13:56 | 顯示全部樓層 |閱讀模式
8黑幣
首先感謝關(guān)注
我的問題首先第一個問題就是在軟件模擬IIC的時候時鐘信號的一個問題
1584849669(1).jpg biao.jpg
上圖是24C02的時序圖,然后根據(jù)時序圖我理解的是:一個時鐘周期(T高+T低>8.7us)必須大于8.7us(不算上升沿和下降沿的過渡時間)
但是我在學(xué)習(xí)資料中看到傳送數(shù)據(jù)函數(shù)的一個時鐘周期,高電平才延遲2us,低電平也是2us,這樣能行么?
1584849263.jpg
1584849324(1).jpg
上面的SDA_OUT()就是配置數(shù)據(jù)線為輸出模式,IIC_SCL和IIC_SDA就是I/O口輸出。這里我想不通,希望前輩指教。
最后就是IIC的SCL線上的時鐘周期是不是并不是咱們傳統(tǒng)意義(以固定頻率精準(zhǔn)的發(fā)送脈沖)上的時鐘周期呀,這個所謂的“時鐘周期”就是指的是一個低電平+高電平,然后呢高低電平會有最小持續(xù)時間,但是最大時間不限制,也就是說,在發(fā)送數(shù)據(jù)的時候(數(shù)據(jù)沒發(fā)完)如果時鐘信號不變了,是不是數(shù)據(jù)發(fā)送也就暫停了,這恰好可以解釋“接收器件可以將SCL線拉成低電平,從而使主機處于等待狀態(tài)。直到接收器件準(zhǔn)備好接收下一個字節(jié)時,再釋放SCL線使之為高電平,從而使數(shù)據(jù)傳送可以繼續(xù)進行。”這句話。

最佳答案

查看完整內(nèi)容

首先是傳輸頻率,表格里邊有兩種,不同的電壓,他們的傳輸頻率最大值是不一樣的,1.8V左右的時候最大不能超過100KHZ,從而也限制了高低電平的最小持續(xù)時間。5V左右的時候,最大傳輸頻率也可達到400khz;也就是說在不同大電壓情況下,在保證24C02能正常工作的情況下,還決定了數(shù)據(jù)傳輸?shù)淖罡哳l率。 你說的8.7us是在某一個電壓區(qū)間的值。隨著電壓這個周期值是變化的。 在5V左右的時候,其實理想情況1.8us就夠了。 例程中delay_us ...
回復(fù)

使用道具 舉報

ID:191511 發(fā)表于 2020-3-22 13:56 | 顯示全部樓層
首先是傳輸頻率,表格里邊有兩種,不同的電壓,他們的傳輸頻率最大值是不一樣的,1.8V左右的時候最大不能超過100KHZ,從而也限制了高低電平的最小持續(xù)時間。5V左右的時候,最大傳輸頻率也可達到400khz;也就是說在不同大電壓情況下,在保證24C02能正常工作的情況下,還決定了數(shù)據(jù)傳輸?shù)淖罡哳l率。
你說的8.7us是在某一個電壓區(qū)間的值。隨著電壓這個周期值是變化的。
在5V左右的時候,其實理想情況1.8us就夠了。
例程中delay_us(x)函數(shù)一般實現(xiàn)延時都不是絕對的xus,而是有多少的變化的。因為一般都用軟件延時,延時并不精確,具體時間可以用示波器或者邏輯分析儀去判斷。
IIC的傳輸時鐘周期,這個時鐘并不是標(biāo)準(zhǔn)的方波,簡單點說是pwm波,不通的編程方式,這個時鐘的波形是稍有差別的。并且多數(shù)串行數(shù)據(jù)通信都是要檢測邊沿信號來進行數(shù)據(jù)改變和鎖存的。
回復(fù)

使用道具 舉報

ID:94031 發(fā)表于 2020-3-22 15:13 | 顯示全部樓層
首先不能加在一起算,而是分別2.5v供電時 T高>4us,T低>4.7us,4.5-5.5供電時 T高>0.6us,T低>1.2us,這也解答了你別人為什么是2us,因為別人是4.5-5.5供電。
回復(fù)

使用道具 舉報

ID:687694 發(fā)表于 2020-3-22 17:03 | 顯示全部樓層
告訴你個小技巧,在proteus里面建個mcu然后加載HEX文件,用仿真示波器觀察i2c數(shù)據(jù)線上的波形判斷是否正常。
回復(fù)

使用道具 舉報

ID:474802 發(fā)表于 2020-3-22 19:39 | 顯示全部樓層
xuyaqi 發(fā)表于 2020-3-22 15:13
首先不能加在一起算,而是分別2.5v供電時 T高>4us,T低>4.7us,4.5-5.5供電時 T高>0.6us,T低>1.2us,這也 ...

但這是3.3V的電壓該怎么算呢?
回復(fù)

使用道具 舉報

ID:474802 發(fā)表于 2020-3-22 19:47 | 顯示全部樓層
xuyaqi 發(fā)表于 2020-3-22 15:13
首先不能加在一起算,而是分別2.5v供電時 T高>4us,T低>4.7us,4.5-5.5供電時 T高>0.6us,T低>1.2us,這也 ...

弄懂了,謝謝
回復(fù)

使用道具 舉報

ID:474802 發(fā)表于 2020-3-22 19:52 | 顯示全部樓層
wo4fisher 發(fā)表于 2020-3-22 13:56
首先是傳輸頻率,表格里邊有兩種,不同的電壓,他們的傳輸頻率最大值是不一樣的,1.8V左右的時候最大不能超 ...

感謝回答
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表