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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-06-10 10:15 ? 次閱讀

界面如何將快樂的面孔變成悲傷的面孔?當(dāng)界面正常工作時,工程師會露出快樂的面孔。悲傷的面孔表示某處失敗。由于微處理器IC之間的接口很簡單,甚至很容易,所以它們經(jīng)常被忽略,直到接口故障導(dǎo)致周圍悲傷的面孔。在本文中,我們將討論一個常見的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)中的權(quán)衡取舍,并描述了來自微處理器的GPIO通信的基本操作。提供了指向教程信息的鏈接以供進(jìn)一步閱讀。

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

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

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

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

基本 SPI 操作

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

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

wKgZomSD5B-AUkndAABcKVJFW70970.png


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

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

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

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

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

表 1顯示了最先加載的最高有效位 (MSB) 和最后加載的最低有效位 (LSB)。圖 2 顯示了首先加載的 4 位命令。請注意,僅使用了可能的 16 個控制字中的 <> 個,并且有一條警告不要使用任何未列出的命令。如果使用未列出的命令,設(shè)備可能會也可能不會做出反應(yīng)。無論如何,不能保證會發(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 進(jìn)入關(guān)機(jī);輸入和DAC寄存器保持不變。
1 1 0 0 XXXXXXXXXXXXX 退出關(guān)閉;輸入和DAC寄存器保持不變。

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

wKgZomSD3MuAYkGkAAAU1KAw6V0071.gif


圖2.MAX5312數(shù)據(jù)資料中的SPI接口示例

神秘噪音

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

我們認(rèn)為噪音不太可能。原因如下。如果未發(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è)備的命令數(shù)量的增加,中斷截斷 SPI 命令的可能性也會增加。這正是在SPI傳輸期間必須屏蔽中斷的原因。

噪聲如何影響IC?

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

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

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

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

接口海洋中的I2C

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

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

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

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

GPIO 簡單明了

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

結(jié)論

當(dāng)界面正常工作時,工程師會微笑(有快樂的面孔)。周圍悲傷的面孔表明某處失敗。那么,應(yīng)該吸取什么教訓(xùn)呢?老實說,它是如此簡單,以至于通常被忽視:注意細(xì)節(jié),特別是如果您不了解它們的全部重要性。它非常適合快樂和悲傷的面孔,因為,你看,它來自小酒館的啤酒談話。我們的英國同事告訴我們在設(shè)計中“注意你的P和Q”。當(dāng)設(shè)計運(yùn)作良好時,它可能意味著注意你的品脫和夸脫啤酒。因此,我們用啤酒慶祝成功,我們在啤酒中悲傷地哭泣。這就是為什么許多工程師只是說,“我會喝酒”,然后露出幸福的笑容。

審核編輯:郭婷

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

    關(guān)注

    33

    文章

    8447

    瀏覽量

    150722
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2244

    瀏覽量

    82267
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1688

    瀏覽量

    91209
收藏 人收藏

    評論

    相關(guān)推薦

    [3.10.1]--3.10微處理器概述

    微處理器
    學(xué)習(xí)電子知識
    發(fā)布于 :2023年02月17日 20:50:35

    [3.13.1]--3.13專用微處理器設(shè)計實例(上)

    微處理器
    學(xué)習(xí)電子知識
    發(fā)布于 :2023年02月17日 20:52:49

    [3.14.1]--3.14專用微處理器設(shè)計實例(下)

    微處理器
    學(xué)習(xí)電子知識
    發(fā)布于 :2023年02月17日 20:53:47

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

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

    ARM微處理器分析與串口通信

    ARM微處理器分析與串口通信
    發(fā)表于 05-30 11:58

    什么是總線微處理器

    第一章復(fù)習(xí)要點①微處理器 p12②微型計算機(jī)p13③總線微處理器:一般也稱中央處理器(CPU),是本身具有運(yùn)算能力和控制功能,是微型計算機(jī)的核心。微處理器:由運(yùn)算
    發(fā)表于 07-22 06:48

    了解微處理器的基本操作

    1.主要學(xué)習(xí)嵌入式系統(tǒng)概述了解微處理器的基本操作。理解微處理器體系結(jié)構(gòu)的基本概念。機(jī)器語言程序的基礎(chǔ)知識。用匯編語言設(shè)計和編寫程序2.嵌入式系統(tǒng)包括軟件和硬件 硬件部分需要微處理器和微
    發(fā)表于 12-17 07:50

    奔騰(Pentium)微處理器介紹

    奔騰(Pentium)微處理器介紹 提高微處理器性能有三個途徑:提高芯片內(nèi)部時鐘頻率使操作速度加快,這將受到微電子
    發(fā)表于 12-09 11:38 ?4875次閱讀
    奔騰(Pentium)<b class='flag-5'>微處理器</b>介紹

    什么是微處理器

    什么是微處理器 CPU是Central Processing Unit(中央微處理器)的縮寫,它是計算機(jī)中最重要的一個部分,由運(yùn)算  和控制組成。如果把計算機(jī)比作
    發(fā)表于 06-17 07:32 ?1512次閱讀

    微處理器溫度控制模擬Ⅵ的運(yùn)行操作

    微處理器溫度控制模擬Ⅵ的運(yùn)行,可以通過以下步驟進(jìn)行。通過本章創(chuàng)建的微處理器溫度控制模擬控件,可以模擬微處理器溫度控制過程,以及微處理器溫度變化隨處理
    發(fā)表于 06-20 09:28 ?697次閱讀

    什么是微處理器_微處理器具有什么功能

    微處理器由一片或少數(shù)幾片大規(guī)模集成電路組成的中央處理器。這些電路執(zhí)行控制部件和算術(shù)邏輯部件的功能。微處理器能完成取指令、執(zhí)行指令,以及與外界存儲和邏輯部件交換信息等
    發(fā)表于 10-27 15:20 ?1.5w次閱讀

    微處理器又稱為什么

    微處理器又稱為中央處理器。微處理器能完成取指令、執(zhí)行指令,以及與外界存儲和邏輯部件交換信息等操作,是微型計算機(jī)的運(yùn)算控制部分。它可與存儲
    的頭像 發(fā)表于 10-31 17:00 ?2.5w次閱讀

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

    界面如何將快樂的面孔變成悲傷的面孔?當(dāng)界面正常工作時,工程師會露出快樂的面孔。悲傷的面孔表示某處失敗。由于微處理器和IC之間的接口很簡單,甚至很容易,所以它們經(jīng)常被忽略,直到接口故障導(dǎo)致周圍悲傷
    的頭像 發(fā)表于 04-04 11:37 ?842次閱讀
    I2C系統(tǒng)實現(xiàn)中的權(quán)衡取舍和<b class='flag-5'>微處理器</b>的<b class='flag-5'>GPIO</b><b class='flag-5'>通信</b>的基本<b class='flag-5'>操作</b>

    嵌入式微處理器的原理和應(yīng)用

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

    微處理器的指令集有哪些

    微處理器的指令集是微處理器設(shè)計和功能實現(xiàn)的基礎(chǔ),它決定了微處理器能夠執(zhí)行哪些操作以及這些操作如何被組織和執(zhí)行。隨著計算機(jī)技術(shù)的不斷發(fā)展,
    的頭像 發(fā)表于 10-05 14:58 ?227次閱讀