一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

菊花鏈式SPI器件

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-02-27 14:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

基本串行通信接口

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

poYBAGP8VIqAD83AAAA5VwHdSTc278.png

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

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

菊花鏈替代品

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

poYBAGP8SkuANo7aAAAU--e5a10901.gif

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

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

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

菊花鏈是如何實現(xiàn)的

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

示例電路 #1

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

pYYBAGP8Sk2ADo2XAABBkYgeWgg313.gif

圖3.菊花鏈電路 #1。

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

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

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

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

poYBAGP8VLOAS8uDAABaHWcQ_xU631.png

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

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

在第三個命令周期中,第一個命令0x7FF8加載到IC3的移位寄存器中。第二個命令 0x7000 加載到 IC2 中,IC1 接收新命令 0x6000。所有三個IC現(xiàn)在都有一個命令,它們通過移位寄存器中的菊花鏈接收該命令。當/CS變?yōu)楦唠娖綍r,加載的命令將執(zhí)行;A1 和 B1 設(shè)置為零電平,A2 和 B2 設(shè)置為中間電平,A3 和 B3 設(shè)置為滿量程。

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

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

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

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

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

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

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

0x0000 - 無操作

pYYBAGP8VKCAXmI4AADbIYzBxxg074.png

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

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

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

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

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

在第四個命令周期系列中,IC1和IC2接收NO-OP命令,而IC3接收0x3FF8。第四次執(zhí)行后,IC3的輸入寄存器A加載滿量程數(shù)據(jù)。另一個硬件/LDAC命令使用輸入寄存器中的數(shù)據(jù)加載DAC寄存器。這會導致 B1 從中間量程變?yōu)榱汶娖?,A3 從中間量程變?yōu)闈M量程。所有其他輸出保持不變。

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

示例電路 #2

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

pYYBAGP8SlCAMRdEAABHmYiQDUI150.gif

圖6.菊花鏈電路 #2。

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

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

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

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

0xE400 — 將 DAC A 和 DAC B 置于關(guān)斷模式

0xE40F—使DAC A和DAC B退出關(guān)斷模式

0xFFFF - 無操作

poYBAGP8SlGAWIueAAA1NqBXRlI717.gif

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

加載到每個器件移位寄存器的命令在/CS的上升沿執(zhí)行。在第一次執(zhí)行時,所有DAC輸出都會更新。IC1的DAC輸出變?yōu)榱汶娖?,IC2的DAC輸出變?yōu)橹虚g電平,IC3的DAC輸出變?yōu)闈M量程。

在第二個命令周期中,IC2的DAC A和B都處于關(guān)斷模式,命令0xE400。無操作命令使IC1和IC3不受影響。在第三個命令周期之后,IC1的輸出變?yōu)闈M量程,IC3的輸出變?yōu)榱汶娖?。當IC2的輸出保持關(guān)斷狀態(tài)時,數(shù)據(jù)在內(nèi)部輸入和DAC寄存器中更新。IC2在最后一個命令周期內(nèi)恢復到正常工作模式,輸出進入滿量程。

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

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

    關(guān)注

    48

    文章

    7932

    瀏覽量

    154027
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5430

    瀏覽量

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

    關(guān)注

    17

    文章

    1791

    瀏覽量

    95228
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    RT-Thread SPI鏈式傳輸非法訪問?揭秘致命陷阱!

    structrt_spi_message的next指針。由于next未賦值為RT_NULL,鏈式傳輸時觸發(fā)非法內(nèi)存訪問(next指向不可控地址)。修復方案:將next顯式置空后,
    的頭像 發(fā)表于 06-24 19:38 ?582次閱讀
    RT-Thread <b class='flag-5'>SPI</b><b class='flag-5'>鏈式</b>傳輸非法訪問?揭秘致命陷阱!

    【分享】EasyGo 鏈式SVG系統(tǒng)的實時仿真應用

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

    如何讀取ADS1299菊花鏈數(shù)據(jù)?

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

    ADS8866菊花鏈的程序有嗎?

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

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

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

    如何讓SPI額外發(fā)出一個時鐘?

    現(xiàn)將2個ADC芯片進行菊花鏈式連接,手冊上給的時序圖中,兩個芯片讀數(shù)中間需要額外插入一個時鐘時序,要怎樣控制SPI輸出單個時鐘。還是說只能去用IO口模擬時序。IO口模擬的話速率又不如SPI
    發(fā)表于 06-13 07:30

    STM32 與ads1271的SPI通信問題

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

    可實現(xiàn)工業(yè)級精度和分辨率菊花鏈溫度傳感器包括BOM及原理圖

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

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

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

    數(shù)據(jù)結(jié)構(gòu)之鏈式棧介紹

    數(shù)據(jù)結(jié)構(gòu)之鏈式鏈式鏈式棧的定義鏈式棧操作的實現(xiàn)鏈式棧初始化鏈式棧入棧
    發(fā)表于 12-17 08:11

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

    什么是菊花鏈模式 星型模式 菊花鏈模式   菊花鏈模式是簡化的級聯(lián)模式,主要的優(yōu)點是提供集中管理的擴展端口,對于
    發(fā)表于 12-05 09:00 ?8735次閱讀

    DDR3_菊花鏈連接

    DDR3_菊花鏈連接,高速PCB設(shè)計理論基礎(chǔ),菊花鏈設(shè)計的要求與規(guī)范。
    發(fā)表于 05-25 10:01 ?0次下載

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

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

    TIDA-010076-通過單對以太網(wǎng) (T1) 實現(xiàn)菊花鏈式電源和數(shù)據(jù)傳輸?shù)腜CB layout 設(shè)計

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

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

    電子發(fā)燒友網(wǎng)站提供《BQ79600(UART/SPI菊花鏈網(wǎng)橋IC)的安全手冊.pdf》資料免費下載
    發(fā)表于 08-30 11:35 ?2次下載
    BQ79600(UART/<b class='flag-5'>SPI</b>至<b class='flag-5'>菊花</b>鏈網(wǎng)橋IC)的安全手冊