色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

I2C系統實現中的權衡取舍和微處理器的GPIO通信的基本操作

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-04-04 11:37 ? 次閱讀

界面如何將快樂的面孔變成悲傷的面孔?當界面正常工作時,工程師會露出快樂的面孔。悲傷的面孔表示某處失敗。由于微處理器IC之間的接口很簡單,甚至很容易,所以它們經常被忽略,直到接口故障導致周圍悲傷的面孔。在本文中,我們將討論一個常見的SPI錯誤,該錯誤在大型系統中幾乎不可能找到。提供了指向界面教程信息的鏈接以獲取完整信息。還描述了作為系統問題的噪聲以及將其影響降至最低的IC。

介紹

系統微處理器集成電路 (IC) 之間的通用接口包括 SPI、I2C 和 GPIO。本文討論一個常見的SPI錯誤,該錯誤在大型系統中幾乎不可能發現。本文討論了噪聲作為系統問題,并提到了將噪聲影響降至最低的IC。本文解釋了I2C系統實現中的權衡取舍,并描述了來自微處理器的GPIO通信的基本操作。提供了指向教程信息的鏈接以供進一步閱讀。

界面如何使快樂的臉變成悲傷的臉?

IC的通用接口包括SPI、I2C和GPIO。確定IC如何與微控制器CPU接口對于任何成功的設計都非常重要。然而,微處理器和IC之間的接口很簡單,甚至很容易,因此在許多設計中經常被忽視。在項目早期似乎節省的時間和精力可以讓設計工程師感到高興......此刻。這種情況讓人想起已成為日常生活一部分的快樂臉或無處不在的可愛“笑臉”表情符號是我們這里的隱喻。

工程師的“悲傷”面孔通常在項目后期出現墨菲定律“任何可能出錯的東西,都會在最糟糕的時刻出錯”籠罩著設計師彎曲的肩膀。這篇文章講述了一個悲傷的SPI接口故事,令人驚訝的是,這并不罕見。這是一個關于界面的操作如何使快樂的臉悲傷的故事。

“我的電腦討厭我,我的SPI總線在它想要的時候隨機做它想做的事。

基本 SPI 操作

串行外設接口總線或摩托羅拉命名的SPI(發音為“間諜”)總線是在全雙工模式下運行的同步串行數據總線。3設備以主/從模式通信,主設備啟動數據幀。允許使用單獨的從選擇(即片選)線路使用多個從設備。有時,SPI接口稱為“三線”(即不從從機回讀)或“四線”串行總線。4具有單向信號的SPI接口提供輕松的電氣隔離,以減少工廠中的接地回路。這種SPI接口稱為單向接口,因為四根導線中的每一根都只在一個方向上傳遞信息。電流隔離可以通過光學、電容或變壓器耦合來實現。

一些設計人員犯的第一個錯誤是假設SPI總線具有智能圖1解釋了SPI從站的工作原理;對于接收數據,它只是一個串行輸入、并行輸出移位寄存器

pYYBAGQrm3CAUWpSAAAmF6kAjeE865.gif


圖1.SPI從結構框圖(串行輸入、并行輸出移位寄存器)。

SPI總線很簡單,甚至沒有任何錯誤檢查就很愚蠢,這一點怎么強調都不為過。它本質上是一串串行編寫的寄存器。當芯片選擇被引發時,寄存器將一個并行字卸載到芯片中。SPI位本身沒有協議或意義。消息中甚至沒有設定數量的位;位數因從站的需求而異。為了使設計復雜化,可以將來自不同制造商的不同類型的多個設備菊花鏈連接在一起。當然,它們必須都具有相同的時鐘和數據關系(四種可能的格式之一)3).

現在想象菊花鏈中的三個設備。芯片 1 首先看到芯片 3 的命令通過,然后是芯片 2 的命令。只有在自己的命令移入后,芯片選擇線才會變高。然后,也只有這樣,任何命令對任何單個芯片都有意義。

隨著系統變得越來越大和繁忙,系統可能會發送部分SPI命令,這是致命的。當位加載到SPI移位寄存器的開頭時,就會發生死亡。然后,在位在移位寄存器中處于適當位置之前,芯片選擇變為高電平。寄存器中的任何內容都并聯移入芯片。因此,在 SPI 命令期間必須屏蔽中斷,以確保不發送部分 SPI 命令。

為了說明SPI接口的正確工作原理,我們使用MAX5312 12位數模轉換器DAC)。

表 1 顯示了最先加載的最高有效位 (MSB) 和最后加載的最低有效位 (LSB)。圖 2 顯示了首先加載的 4 位命令。請注意,僅使用了可能的 16 個控制字中的 <> 個,并且有一條警告不要使用任何未列出的命令。如果使用未列出的命令,設備可能會也可能不會做出反應。無論如何,不能保證會發生任何好事。事實上,很有可能會發生不好的事情,所以不要使用任何未指定的命令。5MAX5312在數字引腳上還具有施密特觸發器輸入,以最大限度地降低噪聲影響。

表 1.串行數據格式
控制位 數據位
MSB 低音水平
C3 C2 C1 C0 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
表 2.串行接口編程命令
控制位* 輸入數據 功能
C3 C2 C1 C0 D11–D0
0 0 0 0 XXXXXXXXXXXXX 無操作;命令被忽略
0 0 1 0 12 位 DAC 數據 從移位寄存器加載輸入寄存器;DAC 輸出不變。
0 1 0 0 12 位 DAC 數據 從移位寄存器加載輸入和DAC寄存器;DAC 輸出已更新。
0 1 1 0 XXXXXXXXXXXXX 從輸入寄存器加載DAC寄存器;DAC輸出已更新;輸入寄存器不變。
1 0 0 0 XXXXXXXXXXXXX 進入關機;輸入和DAC寄存器保持不變。
1 1 0 0 XXXXXXXXXXXXX 退出關閉;輸入和DAC寄存器保持不變。

X = 不在乎。
*所有未列出的命令均為保留命令。請勿使用。

poYBAGQrm3CALIpiAAAU1KAw6V0081.gif


圖2.MAX5312數據資料中的SPI接口示例

神秘噪音

有時,客戶擔心他們的系統中發生了奇怪的事情。很多時候,他們將噪音歸咎于原因。未必如此。

我們認為噪音不太可能。原因如下。如果未發生SPI傳輸,則芯片選擇(%-overbar_pre%CS%-overbar_post%)必須保持在零(無噪聲),而時鐘和數據在30%和70%電壓數據閾值之間顫振。如果在SPI消息期間芯片選擇為低電平,則數據和時鐘上的噪聲可能會侵入。經驗表明,如果噪聲真的那么糟糕,那么沒有任何東西通過,或者想要的數據就會隨著DAC輸出的瘋狂跳躍而丟失。三行中的一條干凈(即%-overbar_pre%CS%-overbar_post%),時鐘和數據上的巨大噪聲是非常不尋常的。

有一句古老的格言告訴我們,在解決問題時,首先要尋找最簡單、最可能的答案。因此,在我們的示例中,這種“奇怪的活動”更有可能是部分或不完整的SPI消息。但是,它從何而來?在系統開發過程中,通常使用小型系統或最終大型系統的子集。由于處理器不是很忙,中斷很少截斷 SPI 命令。隨著系統的增長和處理器對更多設備的命令數量的增加,中斷截斷 SPI 命令的可能性也會增加。這正是在SPI傳輸期間必須屏蔽中斷的原因。

噪聲如何影響IC?

巨大的噪聲源會壓倒數字傳輸6, 7.因此,最大的潛在電路錯誤(如雷擊)必須在系統級解決,而較小的問題可以在芯片級處理。

普通IC無法修復的大系統錯誤之一是電源不穩定。在3V至1V之間快速顫振的5V電源將導致IC無法處理的故障。誠然,這是一個極端的例子,但在我們周圍的世界中并不是獨一無二的。每天都有大型電機、電弧焊機、雷電引起的浪涌和變電站負載切換引起的電力線故障。大型輸電網必須通過在白天增加和移除發電設備來應對不斷變化的需求。這種設備切換會導致電壓變化,從而在整個電網中產生漣漪。其他潛在的大噪聲源是射頻干擾 (RFI)、電磁干擾 (EMI) 和靜電放電 (ESD)。許多地區在夏季幾乎每天都會經歷雷暴,冬季濕度低,ESD產生恒定。所有這些大的毛刺和錯誤都必須通過安全理由、屏蔽和浪涌抑制在系統層面進行預測和解決。

使用適當的電源和接地星形連接在芯片級別管理的小錯誤;單獨的PCB電源和接地層,用于清潔(模擬)和臟(數字)電壓;6以及串聯電阻器電感器和鐵氧體磁珠以及并聯電容的功率去耦。7

這些主要噪聲源可能會破壞系統。Maxim擁有,并且有許多器件可用于保護電源、數據和接口。在極端情況下,還需要提供看門狗定時器電路來重新啟動系統微處理器。

接口海洋中的I2C

有大量的接口系統:RS-232,RS-422 / RS-485USB以太網IEEE? 802及其字母湯,IO-Link?,LIN總線,1-Wire?,I2C,SMBus,SPI,MICROWIRE/? MICROWIRE PLUS,? M-Bus(EN1434)和CAN(ISO11898),僅舉幾例。(許多商標由其發起人注冊。有太多相互競爭的系統、協議、標準和部分標準,很難選擇。8

內部集成電路(I2C)是一種多主站、串行、單端通信總線,用于將低速外設連接到電視機、消費類設備、手機或其他電子設備。對于電氣隔離不是問題的小面積、機箱或 PC 板中的通信,它是一個不錯的選擇。它還已擴展用于有線系統。

與大多數系統一樣,I2C接口也有其權衡取舍。其基本限制是電阻上拉和400pF的最大電容。理想情況下,總線將具有較低的功耗,特別是對于電池供電的設備。較低的功率也會轉化為較慢的總線速度。但有些應用需要更快的通信。典型I2C時鐘速度在100kHz至3.4MHz之間;對于更快的速度,SPI時鐘可以在數十兆赫茲區域。I2C也稱為“雙線”串行總線,9I2C雙線數字接口非常適合速度較慢的系統。I2C使用雙向信號;單條數據線將數據從主站傳輸到從站,并從從站向從站進行確認。系統可以有多個主節點,并且由于時鐘來自當前活動的主節點,因此時鐘也可以是雙向的。這種雙向通信使電流隔離復雜化,這就是為什么I2C通常只用于系統的小區域。

有大量的IC器件使用許多接口。設計時,最好搜索所需的功能,例如ADC、DAC、溫度傳感器或數字電位計,然后考慮可用的接口。

GPIO 簡單明了

通用輸入輸出 (GPIO) 控制由來自微處理器的單個并行控制線組成。當簡單的設備僅由幾根電線控制時,就會使用它。GPIO 只是使用標準微處理器端口作為并行接口。同樣,今天您可以找到許多并行接口IC,包括ADC和DAC。

結論

當界面正常工作時,工程師會微笑(有快樂的面孔)。周圍悲傷的面孔表明某處失敗。那么,應該吸取什么教訓呢?老實說,它是如此簡單,以至于通常被忽視:注意細節,特別是如果您不了解它們的全部重要性。

審核編輯:郭婷

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

    關注

    68

    文章

    10878

    瀏覽量

    212167
  • 微處理器
    +關注

    關注

    11

    文章

    2269

    瀏覽量

    82546
  • GPIO
    +關注

    關注

    16

    文章

    1206

    瀏覽量

    52175
收藏 人收藏

    評論

    相關推薦

    GPIO模擬I2C總線的驅動設計與實現

    I2C總線簡單方便,是我們經常使用的一種總線。但有時候我們的MCU沒有足夠多的I2C控制實現我們的應用,所幸我可以使用普通的GPIO引腳
    發表于 12-14 14:19 ?5408次閱讀
    <b class='flag-5'>GPIO</b>模擬<b class='flag-5'>I2C</b>總線的驅動設計與<b class='flag-5'>實現</b>

    什么是嵌入式系統和嵌入式微處理器

    擴展的處理器結構,以能最迅速地開展出滿足應用的最高性能的嵌入式微處理器。4)嵌入式微處理器必須功耗很低,尤其是用于便攜式的無線及移動的計算和通信設備
    發表于 08-12 14:35

    MiCO 基于微處理器的物聯網操作系統

    `MiCO 基于微處理器的物聯網操作系統介紹 :`
    發表于 01-26 10:42

    詳解微處理器和微控制區別

    面向控制的設備,微控制經常要實時響應外界的激勵。  其二,應用領域。微處理器通常作為微型計算機系統的CPU使用,其設計正是針對這樣的應用,這也是
    發表于 10-27 15:51

    【轉帖】詳解微處理器和微控制區別

    控制的設備,微控制經常要實時響應外界的激勵。二,應用領域微處理器通常作為微型計算機系統的CPU使用,其設計正是針對這樣的應用,這也是微處理器
    發表于 11-17 14:10

    處理器微處理器系統

    /單片機。世界上的微處理器系統的總數比人類總數還多得多。它的基本工作原理是用程序控制系統的行為。微處理器系統的基本
    發表于 02-07 11:41

    什么是總線微處理器

    總線(元件級總線)微型計算機:由CPU、內存儲、輸入輸出接口電路組成!以及內總線(系統總線)微型計算機系統:以微型計算機為主體,配上系統軟件,應用軟件,外存儲
    發表于 07-22 06:48

    了解微處理器的基本操作

    1.主要學習嵌入式系統概述了解微處理器的基本操作。理解微處理器體系結構的基本概念。機器語言程序的基礎知識。用匯編語言設計和編寫程序2.嵌入式系統
    發表于 12-17 07:50

    基于S3C44B0X微處理器的JFFS2件系統實現

    基于S3C44B0X微處理器的JFFS2件系統實現
    發表于 03-28 09:50 ?16次下載

    基于Linux操作系統和S3C2410微處理器實現GPS實時導航系統的設計

    這里提出一種實用的設計方案,通過對系統的各方面配置,實現GPS實時導航功能。系統主控器件采用韓國Samsung公司生產的ARM核32位RISC微處理器S3
    發表于 03-09 10:47 ?1090次閱讀
    基于Linux<b class='flag-5'>操作系統</b>和S3<b class='flag-5'>C</b>2410<b class='flag-5'>微處理器</b><b class='flag-5'>實現</b>GPS實時導航<b class='flag-5'>系統</b>的設計

    基于S3C4510B微處理器操作系統實現網絡通信工程的編寫設計

    Micro,是“小”的意思;C表示Control,是“控制”的意思,所以uCLinux就是Micro-Control-Linux,字面上的理解就是“針對微控制領域而設計的Linux系統”。它也是針對無MMU(內存管理單元模塊)的微處理器
    的頭像 發表于 10-04 17:37 ?2003次閱讀
    基于S3<b class='flag-5'>C</b>4510B<b class='flag-5'>微處理器</b>和<b class='flag-5'>操作系統</b><b class='flag-5'>實現</b>網絡<b class='flag-5'>通信</b>工程的編寫設計

    STM32 通用GPIO模擬I2C實現

    STM32 模擬I2C實現#通用GPIO模擬I2C通信實現樣例1 GPIO初始化``#ifdef
    發表于 11-29 15:21 ?29次下載
    STM32 通用<b class='flag-5'>GPIO</b>模擬<b class='flag-5'>I2C</b><b class='flag-5'>實現</b>

    微處理器GPIO通信的基本操作

    最低的IC。本文解釋了I2C系統實現權衡取舍,并
    的頭像 發表于 06-10 10:15 ?1305次閱讀
    <b class='flag-5'>微處理器</b>的<b class='flag-5'>GPIO</b><b class='flag-5'>通信</b>的基本<b class='flag-5'>操作</b>

    嵌入式微處理器的原理和應用

    嵌入式微處理器是專為嵌入式系統設計的微處理器,它們是嵌入式系統的核心組件,負責執行程序指令、處理數據和控制其他硬件設備。與通用
    的頭像 發表于 03-28 15:51 ?963次閱讀

    什么是嵌入式微處理器? 嵌入式微處理器的區別

    嵌入式微處理器(Embedded Microprocessor)是一種被用于控制和操作特定嵌入式系統微處理器。嵌入式系統是指內部集成了特定
    的頭像 發表于 04-21 15:44 ?1600次閱讀
    主站蜘蛛池模板: 99re8久久热在线视频| 蜜桃传媒在线观看入口| 美女扒开腿让男人桶个爽| 奶头从情趣内衣下露了出来AV| 欧美人禽Zozo动人物杂交| 亚洲精品有码在线观看| 国产精品成人无码久免费| 前后灌满白浆护士| 91蜜桃视频| 久久久精品成人免费看| 九九热在线视频| 人人射人人插| 亚洲国产在线视频精品| Chinesetube国产中文| 精品亚洲麻豆1区2区3区 | 又黄又湿免费高清视频| 高h肉辣文黄蓉| 美女乱草鲍高清照片| 性春院| 广东95后小情侣酒店自拍流出| 麻豆AV久久无码精品九九| 亚洲高清视频在线观看| 床伴在线观看免费高清完整泰剧第四集| 久久精品动漫网一区二区| 性直播免费| 国产精品 中文字幕 亚洲 欧美 | 消息称老熟妇乱视频一区二区 | 吃奶啃奶玩乳漫画| 美女张开腿让男人桶爽无弹窗| 亚洲精品影院久久久久久| 俄罗斯人与动ZOOZ| 欧洲电影巜肉欲丛林| adc高清在线观看| 男人网站在线| 1788vv视频| 蜜桃传媒星空传媒在线播放| 中文字幕一区二区三区在线播放| 精品久久电影网| 一道本av免费不卡播放| 九九热久久只有精品2| 亚洲欧美日韩精品自拍|