在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

I2C和電源的關系

h1654155971.8456 ? 來源:lq ? 2018-12-13 10:39 ? 次閱讀

前面說的“I2C七宗罪之第一罪”和復位有關系, 這一次我們來說說:

I2C和電源的關系

提到電源大家的心理通常是緊張滴,不自覺地發問:是不是問題很嚴重?是的, 非常嚴重, 而且通過軟件是沒有辦法解決的。我們先來看下面這張簡圖:

1.系統有風扇,12V供電

2.Fan和CPU之間有轉速檢測TACH和轉速控制PWM信號

3.CPU左邊有一個顆I2C EXPANDER,用來做GPIO擴展的;

4.DC-DC產生VCC-3.3V分別供給CPU和I2C Expander。

乍一看,也沒啥問題啊!俗話說得好,平靜的水面下暗流涌動啊,我先來給大家一點點提示,看看誰能先猜到問題所在,我們來看看CPU PWM/TACH內部結構。

這個也沒有啥問題啊, 我們都知道IBIS buffer的樣子如下,這個在網絡上隨便google或者度娘,到處都是啊。

這些看起來都沒有什么問題,可是偏偏我們把這里的CPU(MCU)和風扇放在一起就出問題了,看看下面這張示意圖,你也許會開始有feel:

我們從電源的上電順序開始:

1.插入12V電源,Fan先開始運轉,注意此時DC-DC還沒有開始工作,也就是說VCC-3.3V還沒有產生;

2.由于風扇的12V先上電,PWN/TACH信號線已經有電了,于是通過圖中MCU的保護二極管(上管)對3.3V充電;

3.注意此時DC-DC仍然還沒有工作,但是3.3V已經開始升壓,但是來源不是DC-DC Buck,而且來自Fan的I/O管腳漏過來的;

4.此時DC-DC電源開始工作,由于同步整流的電源BUCK都需要自舉,也就說我們通常所說的Bootstrap的電路,下管的MOSFET要先打開(關于電源部分我們后面再詳細敘述),產生的后果是把原先I/O漏過來的電壓拉到地;

5.Bootstrap電路開始工作后,DC-DC開始正式工作,從0開始產生VCC-3.3V。

于是我們就看了如上圖的波形, 圖中綠色的就是3.3V, 12V電源插入瞬間開始上升,然后在某一個時間,突然下降到0, 再重新上升到3.3V, 電源完成上電。

說到這, 有人開始問了,你不是討論I2C嗎? 怎么和我們討論起3.3V電源來了啊?別急別急, 事情都是慢慢明朗起來的。

如果此時你回去看最上面的第一張圖,那么你就發現圖中有一個I2C Expander,對了,問題就出自這里,通過我們從上面的討論,我們已經知道, 3.3V的上電不是一帆風順的,而是會有一個Spike,也就是一個倒鉤。如下面所示:

我再來給一張清晰一點圖,VCC每次上電都是先被12V-Fan I/O充電,然后跌落到地,在爬升會3.3V, 原因上面我已經給出詳細的解釋,那么又有人問了,這個會有什么問題嗎?我先明確的回答,會出大問題。

我先來貼一段英文,我非常強烈建議大家平時工作中要養成讀英文論文的習慣,我倒不是崇洋媚外,老外那些大牛的文章,真的讓你覺得很精妙, 有時候自己翻譯成中文總覺得怪怪的,生怕曲解了大牛的原意,所以還是老老實實去讀原版文章,不要翻譯成中文。

If by any chance, the TACH pin is pulled or driven high while the Expander VCC is not applied (which should not be allowed during normal operation), the Expander could be powered up from the TACH pin through the connected internal diode between the pin and VCC. Such false power-up events do not ensure the required power supply to Expander the POR would not be ensured, and a lockup may occur.

Point和上面的英文意思差不多,就是I2C Expander(我們這里是CPU)被別的電路 通過I/O管腳商店了。我們先來把這顆粒I2C expander的內部電路給畫一下, 我們看到這顆芯片沒有外部復位pin腳,所以一般內部會有一個簡單設計的POR電路:

我們看到,當3.3V VCC上電有倒鉤時,由于Fan通過TACH/PWM對I2C expander提前上電, 然后突然又倒回來, 在這個過程中有兩件事是不確定的:

The POR brings the Expander to a known working state (the default condition) by initializing the internal storage elements (flip-flops) and recognizing its connections (such as identifying the status of pins A1 and A0 as high or low, which is how the Expander slave address can be decided). Without the POR feature, the Expander may start up in a random state and thus may cause a lockup.

1.I2C expander是不是已經上電成功了?我們不知道,因為3.3V上電到了半山腰又倒回來,此時芯片內部的POR是不是對芯片完成內部復位我們不清楚,不僅如此I2C expander有沒有準確鎖定外部的strap pin腳的狀態,我們也不清楚;

2.由于不能確定是否完成內部存儲單元(觸發器)的初始化,I2X expander可能工作一個很random的狀態,而不是我們需要的Idle狀態。

關于這個解釋,后來TI的工程師給出詳細的解釋, 英文我不就翻譯成中文了,請讀者仔細品味和理解:

The device has a 6 bit state machine (64 states) of which 49 valid state and 15 are invalid states. The above fix will work assuming the device comes up in a valid state. Typically on all our designs, an invalid state would lead to the idle state on the immediately next clock cycle. However, the PCF8575 is our very first I2C device and there are some invalid states that could latch the SDA line low indefinitely. The 9 clk cycle fix will not work if the device were to power up into an invalid state. The only way to bring the device out of this state is to provide a proper reset.

那我們說了那么多,究竟結果是怎么樣呢? 結果就是I2C expander產生了Lock up, I2C接口訪問不了,有時候還會拉住SCL或者SDA.

總結下來就是一句話:芯片需要POR電路來進行復位,如果因為別的原因提前上電,導致POR工作不正常,那么就會有問題。

關于上面的現象還有另外一種解釋,就是當VCC的倒鉤時,此時I2C Expander的內部電路已經被搞亂了, 但是有內部POR的RC電路的平滑作用, 導致內部Reset被濾平滑了,內部Reset沒有碰到門限電壓,請仔細看上圖紅色的凹陷。

這樣導致芯片也不能正常復位,當然也就不能正常工作了。請看大牛Howard Johnson的描述:

Howard Johnson : Power interruptions drive power-on-reset circuits crazy.. If a processor is involved, the dropout is long enough to make scrambled eggs of the processor’s internal state machines but not long enough to discharge the RC circuit. If the RC circuit doesn't discharge, ~RESET doesn't activate, and the processor spins out of control, powered on, but lost in space.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電源
    +關注

    關注

    184

    文章

    17803

    瀏覽量

    251022
  • 二極管
    +關注

    關注

    147

    文章

    9675

    瀏覽量

    167000
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1494

    瀏覽量

    124104

原文標題:I2C七宗罪之第二罪

文章出處:【微信號:eda365wx,微信公眾號:EDA365電子論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    i2c總線ppt(I2C總線器件應用)

    I2C總線器件應用第一節 I2C總線器件應用概述I2C總線工作原理I2C總線系統結構I2C總線系統結構如圖7-1所示。其中,SCL是時鐘線,
    發表于 08-13 17:34 ?0次下載

    i2c總線的特點

    i2c總線的特點:2 I2C 總線使設計人員和廠商都得益.. 3 2.1 設計人員的得益.. 4 2.2 廠商的得益. 5 3 介紹I2C 總線規范 6 4
    發表于 08-05 09:05 ?26次下載

    I2C總線規范與I2C器件C51讀寫程序

    I2C總線規范與I2C器件C51讀寫程序:本文簡要介紹了I2C總線,并給出了I2C器件的C51讀
    發表于 08-22 17:51 ?93次下載

    I2C總線應用中的幾個問題

    I2C總線應用中的幾個問題:i2c上拉電阻阻值的確定,PCB布局布線與抗干擾設計,軟件模擬I2C時序,I2C 應用中上拉電阻電源問題。
    發表于 09-13 14:27 ?51次下載
    <b class='flag-5'>I2C</b>總線應用中的幾個問題

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpleand
    發表于 04-23 13:55 ?36次下載

    什么是i2c總線

    什么是i2c總線  下載請點擊: i2c總線協議中文版 
    發表于 11-05 09:26 ?2935次閱讀

    基于51的I2c總線

    I2c總線,基于51的I2c總線,程序學習。快來下載學習吧
    發表于 01-13 11:49 ?34次下載

    i2c

    單片機i2c總線操作;單片機i2c總線操作;單片機i2c總線操作;
    發表于 05-17 11:09 ?35次下載

    Widrange I2C電源顯示器

    Widrange I2C電源顯示器
    發表于 04-27 15:40 ?0次下載
    Widrange <b class='flag-5'>I2C</b><b class='flag-5'>電源</b>顯示器

    I2C設備地址關系——以MPU6050舉例

    I2C設備地址關系——以MPU6050舉例
    發表于 12-06 13:21 ?10次下載
    <b class='flag-5'>I2C</b>設備地址<b class='flag-5'>關系</b>——以MPU6050舉例

    硬件I2C與模擬I2C

    硬件I2C對應芯片上的I2C外設,有相應I2C驅動電路,其所使用的I2C管腳也是專用的,因而效率要遠高于軟件模擬的I2C;一般也較為穩定,但
    發表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    ESP 12E I2c基卡的I2C IO卡設計

    電子發燒友網站提供《ESP 12E I2c基卡的I2C IO卡設計.zip》資料免費下載
    發表于 08-15 09:27 ?3次下載
    ESP 12E <b class='flag-5'>I2c</b>基卡的<b class='flag-5'>I2C</b> IO卡設計

    I2C子系統SW Architecture

    I2C SW Architecture 【driver 驅動層】由普通驅動工程師負責,【i2c 核心層】由 Linux 提供,【i2c 核心層】以下由芯片原廠負責。 I2C 子系統
    的頭像 發表于 07-22 16:01 ?975次閱讀
    <b class='flag-5'>I2C</b>子系統SW Architecture

    I2CI3C的區別有哪些

    I2CI3C 主要區別如下: I2C 雖然也是兩條線,但是很多時候傳感器需要一條額外的中斷線,來告訴主控數據已經準備好。I3C 允許從設備直接在總線上產生中斷,不再需要一條額外的
    的頭像 發表于 07-22 16:20 ?7141次閱讀
    <b class='flag-5'>I2C</b>和<b class='flag-5'>I3C</b>的區別有哪些

    i2c采樣是上升沿嗎?

    i2c采樣是上升沿嗎?? I2C采樣是指在I2C總線上對數據進行采樣。在I2C總線上,數據的傳輸是通過2條線傳遞。一條是時鐘線(SCL),另
    的頭像 發表于 09-19 17:16 ?2829次閱讀
    主站蜘蛛池模板: xxxxxhd69日本护士| 性网站免费| 一区二区三区在线观看视频| 国产精品午夜久久| 亚洲va中文va欧美va爽爽| 11111日本网站| 午夜免费影视| 日本黄色美女网站| 国产精品资源网站在线观看| 亚洲精品日韩专区silk| 91成人在线免费视频| 日本一级高清不卡视频在线 | 激情六月综合| 色天使色婷婷在线影院亚洲| 亚洲国产一区二区三区a毛片 | 男啪女视频免费观看网站| 高清午夜线观看免费| 男人cao女人视频在线观看| 欧美福利一区| 五月婷丁香| 人人搞人人爽| 国产三级在线视频观看| 一级片在线观看免费| 色视频在线免费观看| 色噜噜狠狠色综合欧洲| 久久综合偷偷噜噜噜色| www一级毛片| 看片在线观看免费| 欧美性妇| 1000rt人体1000欧美| 性瘾高h姚蕊全文免费阅读| 一个色中文字幕| 青草视频久久| a成人毛片免费观看| 久久精品影视| 荡女妇边被c边呻吟久久| 4480yy私人午夜a级国产| 亚洲综合久久久| 美国色天使| 午夜精品免费| 奇米在线|