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

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

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

3天內不再提示

菊花鏈式SPI器件

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-02-27 14:14 ? 次閱讀

在具有一個主站和多個從站的典型SPI系統中,專用的片選信號用于尋址單個從站。隨著從站數量的增加,芯片選擇線路的數量也會增加。在這種情況下,系統的電路板布局可能會成為一個相當大的挑戰。

一種布局替代方案是菊花鏈。本文解釋了菊花鏈SPI系統的細節,并展示了如何使用軟件通過一串從站傳播命令。

標準SPI?/QSPI/? MICROWIRE?兼容微控制器通過3線或4線串行接口與其從器件通信。典型接口包括片選信號(/CS)、串行時鐘(SCLK)、數據輸入信號(DIN),偶爾還包括數據輸出信號(DOUT)。與I2C系統中通常一樣,可單獨尋址的設備與總線上的單個設備輕松通信。

基本串行通信接口

許多SPI器件無法單獨尋址。因此,這些設備與總線上的單個設備之間的通信需要額外的硬件或軟件組織。圖1顯示了一個微控制器與多個從設備通信的系統。

poYBAGP8VIqAD83AAAA5VwHdSTc278.png

圖1.具有獨立芯片的微控制器為多個從設備選擇。

在上述系統中,微控制器使用一個串行時鐘輸出(SCK)和一個主輸出/從輸入線路(MOSI)來命令所有從機。微控制器為每個從設備分配一個獨立的從機選擇信號(/SS_),以便可以單獨對它們進行尋址。由于所有從機共享單個時鐘和數據線,因此只有/CS輸入置位為低電平的從機才會確認并響應串行時鐘和數據線上的活動。當系統中的從設備很少時,該系統易于實現。在具有許多從器件的系統中,微控制器需要的/SS_輸出與從器件數量一樣多。此體系結構增加了硬件和布局的復雜性。

菊花鏈替代品

硬件約束會使圖 1 中的方法變得不切實際且難以實現。串行接口應用的另一種方法是菊花鏈,它通過串聯的設備傳播命令。圖 2 顯示了采用菊花鏈配置的 N 器件系統。

poYBAGP8SkuANo7aAAAU--e5a10901.gif

圖2.具有多個菊花鏈從器件的微控制器。

單個/SS(或/CS)信號控制所有從機的/CS輸入;所有從站接收相同的時鐘信號。只有鏈中的第一個從站(SLAVE 1)直接從微控制器接收命令數據。網絡中每隔一個從站從鏈中前一個從站的DOUT輸出接收其DIN數據。

為了使菊花鏈成功工作,從機必須能夠在給定的命令周期內在DIN上輸入命令(由一個命令中時鐘所需的時鐘脈沖數定義),并在隨后的命令周期內在DOUT上輸出相同的命令。簡單地說,有一個命令周期的 DIN 到 DOUT 延遲。此外,從機必須只執行在/CS的上升沿寫入它的命令。這意味著只要/CS保持低電平,從機就會忽略該命令,并在下一個命令周期的DOUT上輸出該命令。如果/CS在給定的命令周期后變為高電平,則所有從站執行剛剛寫入其各自DIN輸入的命令。如果/CS變為高電平,則數據不會在DOUT輸出。此過程使鏈中的每個從站都可以執行不同的命令。只要滿足這些菊花鏈要求,微控制器只需要三個信號(/SS、SCK和MOSI)來控制網絡中的所有從站。

菊花鏈是如何實現的

在菊花鏈系統中(圖 2),SLAVE 1 直接從微控制器接收數據。該數據被時鐘輸入SLAVE 1的內部移位寄存器。只要/CS(或/SS)保持低電平,該數據就會傳播到SLAVE 1的DOUT輸出。SLAVE 1 的 DOUT 進入 SLAVE 2 的 DIN,因此當數據出現在 SLAVE 2 的 DOUT 輸出上時,數據將時鐘輸入 SLAVE 1 的內部移位寄存器。正如SLAVE 2從SLAVE 1接收數據一樣,微控制器可以同時向SLAVE 1發送另一個命令。此新命令將覆蓋 SLAVE 1 的移位寄存器中的先前數據。只要/CS保持低電平,數據就會在整個菊花鏈中傳播,直到每個從設備收到適當的命令。加載到每個從站移位寄存器的命令在/CS的上升沿執行。以下示例使用MAX5233和MAX5290演示菊花鏈。

示例電路 #1

圖3所示為三個MAX5233 IC,采用菊花鏈結構連接。MAX5233為雙通道、10位DAC(包含兩個DAC通道A和B)。RSTV 連接到 VDD,模擬輸出功率可達中間電平。

pYYBAGP8Sk2ADo2XAABBkYgeWgg313.gif

圖3.菊花鏈電路 #1。

圖4顯示了將IC1(A1和B1)、IC2(A2和B2)和IC3(A3和B3)輸出分別設置為零、中和滿量程的命令序列。對于此示例,使用以下命令:

0x7FF8—用滿量程數據加載IC3 DAC寄存器,并將兩個輸出(A3、B3)設置為滿量程

0x7000—用中間電平數據加載IC2 DAC寄存器,并將兩個輸出(A2、B2)設置為中間電平

0x6000—用零電平數據加載IC1 DAC寄存器,并將兩個輸出(A1、B1)設置為零電平

poYBAGP8VLOAS8uDAABaHWcQ_xU631.png

圖4.電路 #1 — 命令序列 A。

在第一個命令周期(一組16個SCLK脈沖)中,0x7FF8被加載到IC1的移位寄存器中。當/CS保持低電平時,該數據通過IC1傳播,并在DOUT輸出1在下一個命令周期中。在第二個命令周期中,來自 DOUT 的數據1直接移動到 DIN2,0x7FF8被加載到IC2的移位寄存器中。同時,一個新命令0x7000被加載到IC1的移位寄存器中,從而覆蓋其先前的命令。

在第三個命令周期中,第一個命令0x7FF8加載到IC3的移位寄存器中。第二個命令 0x7000 加載到 IC2 中,IC1 接收新命令 0x6000。所有三個IC現在都有一個命令,它們通過移位寄存器中的菊花鏈接收該命令。當/CS變為高電平時,加載的命令將執行;A1 和 B1 設置為零電平,A2 和 B2 設置為中間電平,A3 和 B3 設置為滿量程。

圖 5 演示了一個更復雜的命令序列。使用以下命令(更多信息參見MAX5233數據資料):

0x3FF8—加載輸入寄存器A,滿量程數據,DAC寄存器和輸出保持不變

0x3000—加載具有中間量程數據的輸入寄存器A,DAC寄存器和輸出保持不變

0x2000—加載輸入寄存器A,具有零電平數據,DAC寄存器和輸出保持不變

0xBFF8—加載輸入寄存器B,滿量程數據,DAC寄存器和輸出保持不變

0xB000—加載輸入寄存器B,其中量程數據、DAC寄存器和輸出保持不變

0xA000—用零電平數據加載輸入寄存器B,DAC寄存器和輸出保持不變

0x0000 - 無操作

pYYBAGP8VKCAXmI4AADbIYzBxxg074.png

圖5.電路 #1 — 命令序列 B。

在前三個命令周期中,菊花鏈中的三個IC中的每一個都在其移位寄存器中接收一個命令。IC1、IC2 和 IC3 的命令分別為0xB000、0xBFF8和0xBFF8。這些命令在/CS的上升沿執行(第一次執行)。首次執行后,IC1、IC2和IC3的輸入寄存器B分別加載中間量程、滿量程和滿量程數據。此時,B1、B2、B3保持不變,因為每個IC的DAC寄存器B保持不變。

在接下來的三個命令周期中,僅加載輸入寄存器A的命令將寫入每個IC的移位寄存器。DAC寄存器A及其輸出保持不變。在/CS的上升沿,IC1、IC2和IC3的輸入寄存器A分別加載滿量程、零電平和中間電平數據。此時,A1、A2和A3保持不變,因為僅更新了輸入寄存器A,而不是DAC寄存器A。

第二次執行后的硬件/LDAC命令(驅動/LDAC低電平有效)加載所有DAC寄存器及其各自輸入寄存器中的數據。DAC輸出使用來自其相應DAC寄存器的數據進行更新。A1、B2 和 B3 進入滿量程。A2 降至零電平,A3 保持在中電平。

在第三系列命令周期中,IC2和IC3被賦予NO-OP命令(0x0000),而IC1接收0xA000命令,以加載其輸入寄存器B的零電平數據。第三次執行后,所有輸出保持不變。

在第四個命令周期系列中,IC1和IC2接收NO-OP命令,而IC3接收0x3FF8。第四次執行后,IC3的輸入寄存器A加載滿量程數據。另一個硬件/LDAC命令使用輸入寄存器中的數據加載DAC寄存器。這會導致 B1 從中間量程變為零電平,A3 從中間量程變為滿量程。所有其他輸出保持不變。

模擬輸出名稱 輸出狀態
上電后(RSTV = VDD) 首款硬件低電平有效LDAC 第二個硬件低電平有效LDAC
IC1 A1 中檔 滿量程 滿量程
B1 中檔 中檔 零刻度
IC2 A2 中檔 零刻度 零刻度
B2 中檔 滿量程 滿量程
IC3 A3 中檔 中檔 滿量程
B3 中檔 滿量程 滿量程

示例電路 #2

圖6所示為三個采用菊花鏈配置的MAX5290雙通道、12位DAC。PU 連接到 DVDD,模擬輸出通電至滿量程。MAX5290沒有用于菊花鏈的專用數字輸出。相反,兩個UPIO(用戶可編程輸入/輸出)引腳中的一個必須由串行接口編程才能DOUTDC_模式。詳見MAX5290數據資料。

pYYBAGP8SlCAMRdEAABHmYiQDUI150.gif

圖6.菊花鏈電路 #2。

圖7給出了命令序列示例,使用了以下命令(更多信息參見MAX5290數據資料)。

0xDFFF—用滿量程數據加載所有輸入和DAC寄存器,DAC A和B輸出更新

0xD800—使用中間量程數據加載所有輸入和DAC寄存器,DAC A和B輸出更新

0xD000—用零電平數據加載所有輸入和DAC寄存器,DAC A和B輸出更新

0xE400 — 將 DAC A 和 DAC B 置于關斷模式

0xE40F—使DAC A和DAC B退出關斷模式

0xFFFF - 無操作

poYBAGP8SlGAWIueAAA1NqBXRlI717.gif

圖7.電路 #2 示例命令序列。

加載到每個器件移位寄存器的命令在/CS的上升沿執行。在第一次執行時,所有DAC輸出都會更新。IC1的DAC輸出變為零電平,IC2的DAC輸出變為中間電平,IC3的DAC輸出變為滿量程。

在第二個命令周期中,IC2的DAC A和B都處于關斷模式,命令0xE400。無操作命令使IC1和IC3不受影響。在第三個命令周期之后,IC1的輸出變為滿量程,IC3的輸出變為零電平。當IC2的輸出保持關斷狀態時,數據在內部輸入和DAC寄存器中更新。IC2在最后一個命令周期內恢復到正常工作模式,輸出進入滿量程。

模擬輸出名稱 輸出狀態
上電后(PU = VDD) 首次執行后 第二次執行后 第三次執行后 第四次執行后
IC1 A1 滿量程 零刻度 零刻度 滿量程 滿量程
B1 滿量程 零刻度 零刻度 滿量程 滿量程
IC2 A2 滿量程 中量程 關閉 關閉 滿量程
B2 滿量程 中量程 關閉 關閉 滿量程
IC3 A3 滿量程 滿量程 滿量程 零刻度 零刻度
B3 滿量程 滿量程 滿量程 零刻度 零刻度

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

    關注

    48

    文章

    7841

    瀏覽量

    153314
  • 寄存器
    +關注

    關注

    31

    文章

    5399

    瀏覽量

    122723
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1748

    瀏覽量

    94011
收藏 人收藏

    評論

    相關推薦

    【分享】EasyGo 鏈式SVG系統的實時仿真應用

    一、鏈式SVG簡介電力系統中的無功步長裝置發展到今天,從早期的電容器,同步調相機,到靜止無功步長裝置SVC,以及現在的靜止無功發生器SVG. SVG又稱為STATCOM, 是一種基于大功率逆變器
    發表于 02-21 17:31

    如何讀取ADS1299菊花鏈數據?

    菊花鏈必須統一使用外部時鐘。級聯模式可以分別配置不同ADS1299。 5.多片bias引腳連接如下圖(將BIASINV連接在一起,并且只留一個bias放大器電源,其他電源全部關閉。): 6. SPI
    發表于 12-04 06:56

    ADS8866菊花鏈的程序有嗎?

    ADS8866 菊花鏈的程序有嗎 最好是基于linux的,我接5個adc設備,讀數據是要一次性讀完嗎?菊花鏈支持標準的spi驅動嗎?
    發表于 12-06 06:57

    如何用ADS1271的SPI接口模式與STM32進行通信?

    現在用ADS1271EVM,該模塊是用兩個DAS1271以菊花鏈式連接的,我打算用STM32F446的SPI來連接該模塊。我查了手冊得知ADS1271進行SPI接口模式配置后,最后在
    發表于 12-31 08:08

    STM32 與ads1271的SPI通信問題

    現在用ADS1271EVM,該模塊是24位的adc,該模上有兩個DAS1271以菊花鏈式連接的,我打算用STM32F446的SPI來連接該模塊。我查了手冊得知ADS1271進行SPI
    發表于 10-28 09:24

    可實現工業級精度和分辨率菊花鏈溫度傳感器包括BOM及原理圖

    ? SMAART WIRE? 接口:最多可使用 UART 接口支持 32 個菊花鏈式器件? 溫度范圍:-55°C 至 +125°C? 精度:±0.4°C(-20°C 至 +70°C)? 分辨率:14 位
    發表于 08-29 09:21

    解決了合并單元對前端需求的模擬前端 (AFE)設計

    描述此解決方案解決了合并單元對前端的需求,它們需要多個電流和電壓測量通道。該模塊化實施在 TI 的 SAR ADC 中采用 SPI 菊花鏈式特性,從而實現了通道的輕松擴展,同時保持通道與處理器的連接
    發表于 10-08 09:00

    FPGA菊花鏈下載時initialize chain識別不到器件

    FPGA按下圖做的菊花鏈的電路連接,FPGA為spartan3E XC2S250E,PROM為18v02,但下載時initialize chain識別不到三個器件,只顯示一個但也下載不了,根據大家的經驗,可能是什么原因呢?下載方式不對?還是什么的?請大家多多指教??!謝謝啦
    發表于 04-25 00:05

    數據結構之鏈式棧介紹

    數據結構之鏈式鏈式鏈式棧的定義鏈式棧操作的實現鏈式棧初始化鏈式棧入棧
    發表于 12-17 08:11

    什么是菊花鏈模式 星型模式

    什么是菊花鏈模式 星型模式 菊花鏈模式   菊花鏈模式是簡化的級聯模式,主要的優點是提供集中管理的擴展端口,對于
    發表于 12-05 09:00 ?8673次閱讀

    DDR3_菊花鏈連接

    DDR3_菊花鏈連接,高速PCB設計理論基礎,菊花鏈設計的要求與規范。
    發表于 05-25 10:01 ?0次下載

    8片菊花鏈式WS2812B 8x8 RGB LED矩陣開源

    電子發燒友網站提供《8片菊花鏈式WS2812B 8x8 RGB LED矩陣開源.zip》資料免費下載
    發表于 10-21 14:59 ?12次下載
    8片<b class='flag-5'>菊花</b><b class='flag-5'>鏈式</b>WS2812B 8x8 RGB LED矩陣開源

    SPI協議優缺點 如何減少GPIO數量

    如何減少GPIO數量? 一種方法是使用串行轉并行轉換器,如圖所示。該器件輸出的并行信號可連接到開關控制輸入,器件可通過串行接口SPI配置。此方法的缺點是外加器件會導致物料清單增加。 另
    的頭像 發表于 07-21 10:17 ?1292次閱讀
    <b class='flag-5'>SPI</b>協議優缺點 如何減少GPIO數量

    TIDA-010076-通過單對以太網 (T1) 實現菊花鏈式電源和數據傳輸的PCB layout 設計

    電子發燒友網站提供《TIDA-010076-通過單對以太網 (T1) 實現菊花鏈式電源和數據傳輸的PCB layout 設計.pdf》資料免費下載
    發表于 05-19 10:42 ?2次下載
    TIDA-010076-通過單對以太網 (T1) 實現<b class='flag-5'>菊花</b><b class='flag-5'>鏈式</b>電源和數據傳輸的PCB layout 設計

    BQ79600(UART/SPI菊花鏈網橋IC)的安全手冊

    電子發燒友網站提供《BQ79600(UART/SPI菊花鏈網橋IC)的安全手冊.pdf》資料免費下載
    發表于 08-30 11:35 ?2次下載
    BQ79600(UART/<b class='flag-5'>SPI</b>至<b class='flag-5'>菊花</b>鏈網橋IC)的安全手冊
    主站蜘蛛池模板: 68日本xxxxxxxxx| 欧美一区亚洲二区 | 正在播放欧美 | 四虎永久免费网站入口2020 | 美女黄色一级片 | 午夜免费福利在线 | 日本在线免费 | 1024你懂的在线播放欧日韩 | 欧美色图日韩色图 | 四虎新网址 | 精品一区二区三区自拍图片区 | www.妖精视频| 亚洲经典一区二区三区 | 欧美视频一区二区三区在线观看 | 国产小视频在线观看 | 日本免费观看完整视频 | 成熟女人免费一级毛片 | 午夜一级| 国产精品污视频 | 午夜激情网站 | 国产成人综合自拍 | 黄色视屏免费看 | 婷婷操| 中国毛茸茸bbxx | 久久精品国产福利国产琪琪 | 亚洲成在人线中文字幕 | 日本zzzwww大片免费 | 久久久噜噜噜久久久 | 久久久福利 | 天天爱夜夜操 | 午夜秒播| 中文天堂最新版资源新版天堂资源 | 性色视频在线观看 | 好爽毛片一区二区三区四 | 人人上人人干 | 亚洲午夜综合网 | 欧美天天 | 国产精品资源手机在线播放 | 成人国产精品毛片 | 天天添天天干 | 天天射天天射天天射 |