吴忠躺衫网络科技有限公司

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

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

3天內不再提示

I2C系統(tǒng)實現(xiàn)中的權衡取舍和微處理器的GPIO通信的基本操作

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

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

介紹

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

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

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

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

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

基本 SPI 操作

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

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

pYYBAGQrm3CAUWpSAAAmF6kAjeE865.gif


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

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

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

隨著系統(tǒng)變得越來越大和繁忙,系統(tǒng)可能會發(fā)送部分SPI命令,這是致命的。當位加載到SPI移位寄存器的開頭時,就會發(fā)生死亡。然后,在位在移位寄存器中處于適當位置之前,芯片選擇變?yōu)楦唠娖健<拇嫫髦械娜魏蝺热荻疾⒙?lián)移入芯片。因此,在 SPI 命令期間必須屏蔽中斷,以確保不發(fā)送部分 SPI 命令。

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

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

表 1.串行數(shù)據(jù)格式
控制位 數(shù)據(jù)位
MSB 低音水平
C3 C2 C1 C0 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
表 2.串行接口編程命令
控制位* 輸入數(shù)據(jù) 功能
C3 C2 C1 C0 D11–D0
0 0 0 0 XXXXXXXXXXXXX 無操作;命令被忽略
0 0 1 0 12 位 DAC 數(shù)據(jù) 從移位寄存器加載輸入寄存器;DAC 輸出不變。
0 1 0 0 12 位 DAC 數(shù)據(jù) 從移位寄存器加載輸入和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數(shù)據(jù)資料中的SPI接口示例

神秘噪音

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

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

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

噪聲如何影響IC?

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

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

使用適當?shù)碾娫春徒拥匦切芜B接在芯片級別管理的小錯誤;單獨的PCB電源和接地層,用于清潔(模擬)和臟(數(shù)字)電壓;6以及串聯(lián)電阻器電感器和鐵氧體磁珠以及并聯(lián)電容的功率去耦。7

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

接口海洋中的I2C

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

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

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

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

GPIO 簡單明了

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

結論

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

審核編輯:郭婷

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

    關注

    68

    文章

    10905

    瀏覽量

    213030
  • 微處理器
    +關注

    關注

    11

    文章

    2274

    瀏覽量

    82778
  • GPIO
    +關注

    關注

    16

    文章

    1216

    瀏覽量

    52384
收藏 人收藏

    評論

    相關推薦

    GPIO模擬I2C總線的驅動設計與實現(xiàn)

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

    什么是嵌入式系統(tǒng)和嵌入式微處理器

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

    MiCO 基于微處理器的物聯(lián)網(wǎng)操作系統(tǒng)

    `MiCO 基于微處理器的物聯(lián)網(wǎng)操作系統(tǒng)介紹 :`
    發(fā)表于 01-26 10:42

    詳解微處理器和微控制區(qū)別

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

    【轉帖】詳解微處理器和微控制區(qū)別

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

    處理器微處理器系統(tǒng)

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

    什么是總線微處理器

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

    了解微處理器的基本操作

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

    基于S3C44B0X微處理器的JFFS2件系統(tǒng)實現(xiàn)

    基于S3C44B0X微處理器的JFFS2件系統(tǒng)實現(xiàn)
    發(fā)表于 03-28 09:50 ?16次下載

    基于Linux操作系統(tǒng)和S3C2410微處理器實現(xiàn)GPS實時導航系統(tǒng)的設計

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

    基于S3C4510B微處理器操作系統(tǒng)實現(xiàn)網(wǎng)絡通信工程的編寫設計

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

    STM32 通用GPIO模擬I2C實現(xiàn)

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

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

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

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

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

    什么是嵌入式微處理器? 嵌入式微處理器的區(qū)別

    嵌入式微處理器(Embedded Microprocessor)是一種被用于控制和操作特定嵌入式系統(tǒng)微處理器。嵌入式系統(tǒng)是指內部集成了特定
    的頭像 發(fā)表于 04-21 15:44 ?1680次閱讀
    百家乐稳赢秘诀教学| 大发888游戏代充| 金博士百家乐官网的玩法技巧和规则| 娱乐博彩| 网上百家乐娱乐场开户注册| 百家乐官网庄闲出现几| 百家乐官网庄闲当哪个好| 顶级赌场 官方直营网络赌场| 百家乐公开| 江山百家乐官网的玩法技巧和规则| 网页百家乐官网游戏| 大发888官方888| 百家乐心术| 81数理 做生意| 打百家乐官网庄闲的技巧| 扶沟县| 大发888网站是多少呢| 百家乐赌博娱乐城| 百家乐官网博娱乐赌百家乐官网的玩法技巧和规则 | 百家乐官网出千桌| 百家乐官网怎么下注能赢| 威尼斯人娱乐场 新葡京| 天博百家乐官网娱乐城| 澳门百家乐官网哪家信誉最好| 田阳县| 虹乐棋牌是真的吗| 百家乐高级技巧| 百家乐庄闲必胜手段| 百家乐官网英皇赌场娱乐网规则| 现金百家乐官网网上娱乐| 易发百家乐| 大发888 娱乐| 索雷尔百家乐的玩法技巧和规则 | 百家乐赌场策略论坛| 百家乐2珠路投注法| 优博百家乐官网的玩法技巧和规则| 澳门百家乐官网介绍| 从化市| 来博| 网上棋牌室| 大发888官网是多少|