IIC下掛多外設,SCLK頻率高導致掛死疑問
最近做IIC介面下掛多個外設,但是發現SCLK速率設定為400KHz時,系統執行一段時間就卡死,主要是OLED的影響,萬用表測量SCL SDA電平為高;查了下IIC相關的資料,某個論壇上的帖子給了很大的啟發,權當學習記錄應用。目前還有疑問是,SCLK降到100K就OK了,不知道SCLK頻率高到底怎麼影響IIC掛死的,OLED 手冊上最高iiC SCLK 400k,會不是到臨界點導致的,望有經驗的兄弟路過留言指點,感謝!
【原貼內容】:
【牛人回覆】:
本帖最後由 yang_alex 於 2017-9-26 09:37 編輯 這兩個上拉電阻不僅僅是電平匹配! 要真正瞭解為什麼需要這兩個電阻的原因,首先要了解這SDA和SCL兩個埠的內部電路。 下面這張圖就很好的說明了,原來這兩個埠內部是OD門(開漏門)。 而這個OD門的主要作用是防止I2C匯流排衝突。其機理是這樣的: I2C匯流排是一個真正的多主機匯流排,如果兩個或更多主機同時初始化資料傳輸,就有可能出現匯流排衝突。SDA 和 SCL 都是雙向線路,都通過一個上拉電阻連線到電源VCC。 當匯流排空閒時這兩條線路都是高電平。連線到匯流排的器件輸出級必須是漏極開路或集電極開路才能執行線與的功能。主機只能在匯流排空閒的時侯啟動傳輸,當 SCL 線是高電平時,仲裁在 SDA 線發生。 這樣, 在其他主機傳送低電平時, 傳送高電平的主機將斷開它的資料輸出級因為匯流排上的電平與它自己的電平不相同。 此外,即使在一主多從的系統中,由於SDA 是大家一起使用的,所以當一個裝置(或器件)不用的時候,把它固定成0或1都必將導致匯流排衝突,同時自己在通訊時還要檢測匯流排是否被佔用,所以線與功能的OD門是一個很好的選擇。 由於OD門具有線與功能,所以不同電壓的器件(或器件),也可以連線在一起,從而實現電平匹配的功能。但是需要做一定處理。 最後,上拉電阻的選擇涉及兩個問題,其一是匯流排的傳輸速度,其次是匯流排上裝置(或器件)的數量。 I2C匯流排支援低速模式100kbit/s 、快速模式400kbit/s 和高速模式3.4Mbit/s , 下圖是快速模式下電阻取值圖 最後,給大家一份資料吧,使用I2C匯流排,匯流排協議總是要看一看的。 |
相關文章
- 精選高頻 VS Code外掛,讓你多陪陪npy!
- vscode外掛導致c盤記憶體高電腦變卡的處理方式,更換vscode外掛位置VSCode記憶體
- [需求建議]問答外掛(外掛需求)
- pageHelper分頁外掛導致的查詢慢的問題最佳化
- DJ Swivel Spread mac(多頻段立體聲成像外掛)Mac
- 想問下外掛怎麼開發
- 記一次升級Gradle外掛導致相容問題的解決方案Gradle
- jsp頁面掛死問題JS
- tampermonkey外掛指令碼油猴外掛下載 - 篡改猴瀏覽器外掛指令碼瀏覽器
- 谷歌外掛下載谷歌
- Flutter 最好的導航外掛Flutter
- VS2019下的VSColorOutput外掛設定
- [外掛擴充套件]onethink 欄位外掛 多圖上傳 UploadImages套件
- [外掛擴充套件] 已安裝外掛板塊問題套件
- Windows下使用ideagit外掛WindowsIdeaGit
- 谷歌Chrome商店移除MetaMask外掛,或導致釣魚騙局風險谷歌Chrome
- [外掛擴充套件]移動端多圖片上傳外掛uploadimages套件
- [外掛擴充套件]解決onethink多圖上傳的外掛分享!套件
- IntelliJ IDEA 外掛Rest Client 外掛使用過程遇到的問題IntelliJIdeaRESTclient
- [外掛擴充套件]書架外掛(新外掛後臺)套件
- SVN外掛和Tomcat外掛地址Tomcat
- [外掛擴充套件]Ping外掛套件
- 從頭開發一個Flutter外掛(二)高德地圖定位外掛Flutter地圖
- jenkins外掛Publish Over SSH因安全問題下架Jenkins
- notion-enhancer外掛下載
- jenkins離線外掛下載Jenkins
- 外掛
- mybatis generator外掛系列--分頁外掛MyBatis
- [外掛擴充套件]更新IP外掛套件
- 外掛如何呼叫本外掛的View?View
- [外掛擴充套件]附件Attachment外掛套件
- [外掛擴充套件]投票外掛1.0套件
- [外掛擴充套件]外掛需求徵集套件
- HtmlWebpackPlugin外掛和HtmlWebpackInlineSourcePlugin外掛的使用HTMLWebPlugininline
- fastadmin的【外掛管理】外掛使用教程AST
- 懷疑私網網路卡多播問題導致crs無法正常啟動
- YII框架 外掛引入問題,手動引入 redis外掛, class "yii\redis\Cache".框架Redis
- 安裝Maltego預設外掛Go