国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

能否用MCU訪問非標準SPI接口?

analog_devices ? 來源:未知 ? 2023-12-23 12:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

當前許多精密模數轉換器(ADC)具有串行外設接口(SPI)或某種串行接口,用以與包括微控制器單元(MCU)、DSPFPGA在內的控制器進行通信。控制器寫入或讀取ADC內部寄存器并讀取轉換碼。SPI的印刷電路板(PCB)布線簡單,并且有比并行接口更快的時鐘速率,因而越來越受歡迎。而且,使用標準SPI很容易將ADC連接到控制器

一些新型ADC具有SPI,但有些ADC具有非標準的3線或4線SPI作為從機,因為它們希望實現更快的吞吐速率。例如,AD7616, AD7606和AD7606B系列有兩條或四條SDO線,在串行模式下可提供更快的吞吐速率。AD7768, AD7779和AD7134系列有多條SDO線,用作SPI主機。用戶在設計微控制器SPI以配置ADC和讀取代碼時往往會遇到困難。

wKgaomWGYk2AHJwHAACJBVac8Q4874.jpg

圖1. AD7768用作串行主機,具有兩個數據輸出引腳(14001-193)。

與ADC的標準MCUSPI連接 SPI是一種同步、全雙工、主從接口。來自主機或從機的數據在時鐘上升沿或下降沿同步。主機和從機可以同時傳輸數據。圖2顯示了典型的4線MCU SPI接口連接。

wKgaomWGYk2AG25hAADOjXXLSzI241.png

圖2. 與ADC從機的標準MCU SPI連接。

要開始SPI通信,控制器必須發送時鐘信號,并通過使能CS信號(通常是低電平有效信號)來選擇ADC。SPI是全雙工接口,因此控制器和ADC可以分別通過MOSI/DIN和MISO/DOUT線同時輸出數據。控制器SPI接口允許用戶靈活選擇時鐘的上升沿或下降沿來采樣和/或移位數據。為了在主機和從機之間進行可靠的通信,用戶必須遵守微控制器和ADC芯片的數字接口時序規范。

wKgaomWGYk2AVw8YAAFXra3zBOs417.jpg

圖3. SPI數據時鐘時序圖示例。

如果微控制器SPI和ADC串行接口具有標準SPI時序模式,那么用戶設計PCB布線和開發驅動器固件不成問題。但是,有些新型ADC的串行接口端口不是典型的SPI時序模式。MCU或DSP似乎不可能通過AD7768串行端口(一種非標準時序SPI端口)讀取數據,如圖4所示。

wKgaomWGYk6AA0e0AADK23wAW18972.png

圖4. AD7768 FORMATx=1×時序圖,僅通過DOUT0輸出。

本文將介紹操縱標準微控制器SPI以便與具有非標準SPI端口的ADC接口的方法。

本文會給出四種通過串行接口讀取ADC碼的解決方案:

  • 解決方案1:MCU作為SPI從機,通過一條DOUT線與作為SPI主機的ADC接口。

  • 解決方案2:MCU作為SPI從機,通過兩條DOUT線與作為SPI主機的ADC接口。

  • 解決方案3:MCU作為SPI從機,通過DMA與作為SPI主機的ADC接口。

  • 解決方案4:MCU作為SPI主機和SPI從機,通過兩條DOUT線讀取數據。

STM32F429微控制器SPI
通過一條DOUT線讀取AD7768代碼
如圖4所示,當FORMATx=11或10時,通道0至通道7僅通過DOUT0輸出 數據。在標準工作模式下,AD7768/AD7768-4為主機工作,數據流入MCU、DSP或FPGA。AD7768/AD7768-4向從機提供數據、數據時鐘(DCLK)和下降沿幀使能信號(DRDY)。

STM32Fxxx系列微控制器廣泛用于很多不同的應用中。該MCU有多個SPI端口,可以使用典型的SPI時序模式將其配置為SPI主機或從機。下文中介紹的方法也可應用于其他具有8位、16位或32位幀的微控制器。

AD7768/AD7768-4分別為8通道和4通道同步采樣∑-?型ADC,每通道均有∑-?型調制器和數字濾波器,支持交流和直流信號的同步采樣。這些器件在110.8kHz的最大輸入帶寬下實現了108dB動態范圍,具備±2ppm INL、±50μV偏置誤差和±30ppm增益誤差的典型性能。AD7768/AD7768-4用戶可在輸入帶寬、輸出數據速率和功耗之間進行權衡,并選擇三種功耗模式之一以優化噪聲目標和功耗。AD7768/AD7768-4的靈活性使其 成為適合低功耗直流和高性能交流測量模塊的可重復使用平臺。遺憾的是,AD7768的串行接口不是典型SPI時序模式,而且AD7768充當串行接口主機。一般而言,用戶必須使用FPGA/CPLD作為其控制器。例如,使用32F429IDISCOVERY和AD7768評估板。變通SPI線的連接如圖5所示。在這種設置下,AD7768的所有八通道數據僅通過DOUT0輸出。

wKgaomWGYk6AM3TxAAEapZqH4Js813.png

圖5. AD7768通過DOUT0將數據輸出到STM32F429 MCU SPI連接。

需要解決的問題:

  • AD7768用作SPI主機,故必須將STM32F429I SPI配置為SPI從機。

  • DRDY 高電平脈沖只持續一個DCLK周期,這不是典型的CS。

  • 完成所有通道數據位的輸出之后,DCLK繼續輸出,DRDY為低電平。

wKgaomWGYk6AGJJsAADmnNozpBg968.png

圖6. 時序解決方案中的AD7768數據位讀取。

解決方案1:MCU SPI作為從機
通過一條DOUT線與SPI主機ADC接口
  • 將STM32F429的一個SPI端口(如SPI4)配置為從機,以DCLK速率接收MOSI上的數據位。

  • 將AD7768DRDY 連接到STM32F429外部中斷輸入引腳EXTI0和NSS (SPI CS) 引腳。DRDY 的上升沿將觸發EXTI0處理例程,以使SPI從機能夠在DRDY 變為低電平之后的第一個DCLK下降沿開始接收數據位。時序設計在這里至關重要。

  • 接收到通道0至通道7的所有數據后,應禁用SPI以防止讀取額外的無效數據,因為 DRDY 會使SPI從機 CS 變為低電平,并且DCLK保持切換。

MCU固件開發注意事項

wKgaomWGYk6AaXWaAAIlqiOhk2o251.jpg

圖7. 配置SPI4外設。

當軟件處于中斷模式時,DCLK運行速率可以高達4 MHz,實現8 kSPS的 ODR。軟件應進入中斷處理程序,在一個半DCLK周期(375 ns)內啟動SPI。為使軟件更輕松地進入中斷例程,MCU可以在DCLK上升沿讀取數據,從而提供額外的半個DCLK周期時間。但是, t5 DCLK上升到DOUTx無效最小值為–3 ns(IOVDD = 1.8 V時為–4 ns),因此DOUTx上的傳播延遲(>|t5| + MCU 保持時間) 應通過PCB布線或緩沖增加。

解決方案2:MCU SPI作為從機
通過兩條DOUT線與SPI主機ADC接口

在第一種解決方案中,僅使用DOUT0來輸出所有8通道數據。因此,數據讀取將ADC吞吐速率限制為8 kSPS。如圖1所示,在DOUT0上輸出通道0至通道3,在DOUT1上輸出通道4至通道7,可以減少數據傳輸時間。串行線的連接如圖7所示。通過這種改進,在DCLK為4 MHz時,ODR可以輕松達到16 kSPS。

wKgaomWGYk6AG50JAAFKHAGqrbg103.png

圖8. AD7768通過DOUT0和DOUT1將數據輸出到STM32F429 MCU SPI連接。

固件可以不使用中斷模式,而使用輪詢模式,以減少從DRDY上升沿觸發到使能SPI接收數據的時間延遲。這樣可以在DCLK為8MHz時實現32kSPS的ODR。

wKgaomWGYk6AeLO2AAEGDMJhCGU592.jpg

圖9. EXTI0處于輪詢模式,SPI4和SPI5通過DOUT0和DOUT1接收AD7768數據位。

解決方案3:MCU SPI作為從機
通過DMA與SPI主機ADC接口

直接存儲器訪問(DMA)用于在外設與存儲器之間以及存儲器與存儲器之間提供高速數據傳輸。DMA可以迅速移動數據而不需要任何MCU操作,這樣可以騰出MCU資源用于執行其他操作。下面是MCU SPI用作從機通過DMA接收數據的設計說明。

wKgaomWGYk6AdiT3AAEB8TxuoMw186.jpg

圖10. EXTI0處于輪詢模式,SPI4 DMA通過DOUT0接收AD7768數據位。

解決方案4:MCU SPI作為主機和從機
通過兩條DOUT線讀取數據

高吞吐量或多通道精密ADC為SPI端口提供兩條、四條甚至八條SDO線,以在串行模式下更快地讀取代碼。對于具有兩個或更多個SPI端口的微控制器,這些SPI端口可以同時運行以加快代碼的讀取。

在以下使用案例中,32F429IDISCOVERY使用SPI4作為SPI主機,SPI5作為SPI 從機,通過DOUTA和DOUTB接收EVAL-AD7606B-FMCZ數據,如圖8所示。

AD7606B是一款16位同步采樣模數轉換數據采集系統(DAS),具有八個通道,每個通道均包含模擬輸入箝位保護、可編程增益放大器(PGA)、低通濾波器和16位逐次逼近寄存器(SAR)型ADC。

AD7606B還內置靈活的數字濾波器、低漂移2.5V精密基準電壓源和基準電壓緩沖器,可驅動ADC及靈活的并行和串行接口。AD7606B采用5V單電源供電,支持±10V、±5V和±2.5V真雙極性輸入范圍,所有通道均能以800 kSPS的吞吐速率采樣。

wKgaomWGYk6AHi6nAACHAjkff5c552.jpg

圖11. 在主從模式下使用MCU SPI通過DOUTA和DOUTB接收數據。

wKgaomWGYk-AbiUfAAHrQ4tORZg020.jpg

圖12. SPI4配置為主機,SPI5配置為從

圖13顯示了AD7606B以240kSPS運行時BUSY、SCLK、DOUTA和DOUB的數字接口截圖。

wKgaomWGYk-ATXFsAAGRjCi5aCA377.jpg

圖13. AD7606B BUSY、SCLK以及DOUTA和DOUTB上的數據的示波器截圖。

wKgaomWGYk-AXDHkAAASTM-su2U017.gif

總結

本文討論了使用微控制器SPI訪問具有非標準SPI接口的ADC的方法。這些方法可以直接使用,也可以稍加調整即可控制ADC SPI;其可作為SPI主機使用,也可以與多條DOUT線配合使用以提高吞吐速率。

wKgaomWGYk-AfGZTAACKAR9sZ48815.gif ? ?查看往期內容↓↓↓


原文標題:能否用MCU訪問非標準SPI接口?

文章出處:【微信公眾號:analog_devices】歡迎添加關注!文章轉載請注明出處。


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

    關注

    6

    文章

    4680

    瀏覽量

    16698

原文標題:能否用MCU訪問非標準SPI接口?

文章出處:【微信號:analog_devices,微信公眾號:analog_devices】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    SD NAND 為何不能存啟動代碼,SPI NAND 與 NOR Flash 卻可以 —— 接口、傳輸、啟動機制全對比

    在嵌入式、物聯網、工控、車載等硬件系統中, 啟動存儲器(Boot Flash) ?是決定設備能否上電即跑、穩定可靠的核心器件。實際選型中,SD NAND、SPI NAND、NOR Flash?是常見
    的頭像 發表于 02-09 11:16 ?189次閱讀
    SD NAND 為何不能存啟動代碼,<b class='flag-5'>SPI</b> NAND 與 NOR Flash 卻可以 —— <b class='flag-5'>接口</b>、傳輸、啟動機制全對比

    Modbus RTU 協議的非標準擴展方案與應用實踐

    除了常規的數據采集,Modbus RTU 還有哪些不尋常的“高階玩法”?下面分享幾個有意思的用法。 1. 暗度陳倉 通過4X保持寄存器傳文件 在僅支持 Modbus RTU 協議的串口連接下,可通過 HMI 讀取 U 盤文件并傳輸至 PLC,用于更新工藝數據或程序。文件通常為幾KB至幾十KB,小于 PLC 常規可用內存。 實現的核心是利用 Modbus 的 4X 保持寄存器作為傳輸介質。其地址空間可達 65536 個字(約 128KB),足以容納常見文件。 具體方案如下: 1.地址空間規劃 控制區:分配一段
    的頭像 發表于 01-28 10:38 ?183次閱讀
    Modbus RTU 協議的<b class='flag-5'>非標準</b>擴展方案與應用實踐

    請問如何實現C語言訪問MCU寄存器?

    系列KeilC中擴充sfr關鍵字,舉例如下:   sfr P0 = 0x80;   這樣操作0x80單元直接寫P0即可。   下面對AVR的歌C編譯器對訪問MCU寄存器的方法進行簡介。   A:采用標準
    發表于 12-26 07:00

    各智能化子系統為信息管理平臺預留接口要求

    /422/232、ModBus等)和非標準接口都能夠實現各子系統的信息(運行數據和命令)的轉換和實時傳送; 2、通信協議:服務器必須支持使用TCP/IP通信協議來通信,并有能力在同一網絡上通過通信接口
    的頭像 發表于 12-10 10:30 ?291次閱讀
    各智能化子系統為信息管理平臺預留<b class='flag-5'>接口</b>要求

    常見SPI溫度傳感器芯片有哪些?(什么是SPI溫度傳感器芯片?)

    SPI(Serial Peripheral Interface)是一種同步串行通信接口,具備全雙工、高速率的特點。基于SPI的溫度傳感器芯片可直接與MCU通信,輸出數字溫度值,無需復雜
    的頭像 發表于 12-01 16:21 ?540次閱讀
    常見<b class='flag-5'>SPI</b>溫度傳感器芯片有哪些?(什么是<b class='flag-5'>SPI</b>溫度傳感器芯片?)

    SPI玩轉WiFi,RT-Thread ESP-Hosted驅動深度適配指南 | 技術集結

    還在為MCU的WiFi連接方案發愁?RT-Thread社區開源ESP-Hosted驅動,通過標準SPI接口即可實現,并且該倉庫已整理成RT-Thread軟件包。RT-ThreadESP
    的頭像 發表于 07-09 19:03 ?1648次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>SPI</b>玩轉WiFi,RT-Thread ESP-Hosted驅動深度適配指南 | 技術集結

    使用BLE(CYW20829)作為SPI slave和MCU(TC387)作為SPI master,調試SPI通信時遇到的問題求解

    我們這邊使用BLE(CYW20829)作為SPI slave和MCU(TC387)作為SPI master,調試SPI通信時,遇到兩個問題: 1. 1.slave接收來自master的
    發表于 07-01 08:28

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

    前言一、在與RT-ThreadBSP的開發者溝通中,發現SPI設備驅動在輪詢(Polling)模式下偶發出現非法訪問異常(如圖)問題復現場景:開發者僅需一次單消息傳輸,但未顯式初始化
    的頭像 發表于 06-24 19:38 ?1655次閱讀
    RT-Thread <b class='flag-5'>SPI</b>鏈式傳輸非法<b class='flag-5'>訪問</b>?揭秘致命陷阱!

    中微愛芯RISC-V內核32位通MCU AiP32RV1564介紹

    12位ADC,3個16位通定時器和1個PWM高級定時器,支持多種標準通信接口,包括2路SPI,2路I2C,3路UART,1路CAN和1路USB。
    的頭像 發表于 06-09 14:29 ?1030次閱讀
    中微愛芯RISC-V內核32位通<b class='flag-5'>用</b><b class='flag-5'>MCU</b> AiP32RV1564介紹

    CYPD3120 上是否有允許從外部 MCU 訪問讀/寫寄存器的可訪問接口

    TUSB564),MCU 需要知道 USB-C 電纜何時翻轉,才能直接翻轉 DP 接收端的通道極性。 CYPD3120 上是否有允許從外部 MCU 訪問讀/寫寄存器的可訪問
    發表于 05-27 07:51

    MAX3420E USB外設控制器,SPI接口技術手冊

    協議,如錯誤校驗和總線重試。通過工作頻率高達26MHz的SPI?接口訪問寄存器組,可對MAX3420E進行控制。利用簡易的3線或4線SPI接口
    的頭像 發表于 05-23 11:35 ?1040次閱讀
    MAX3420E USB外設控制器,<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>技術手冊

    MAX3421E USB外設/主機控制器,SPI接口技術手冊

    串行接口引擎(SIE)處理底層USB協議,如錯誤校驗和總線重試。通過頻率高達26MHz的SPI?接口訪問寄存器組,實現MAX3421E的控制。利用簡易的3線或4線
    的頭像 發表于 05-22 16:39 ?1560次閱讀
    MAX3421E USB外設/主機控制器,<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>技術手冊

    能否提供Linux下USB轉SPI模式的測試程序?

    Cypress Semiconductor Corp.USB 串行(單通道)。 能否提供 Linux 下 USB 轉 SPI 模式的測試程序? 或者,您能否就如何進行測試提供一些建議? 非常感謝。
    發表于 05-22 06:16

    ADIS16060寬帶寬偏航角速度陀螺儀,采用SPI接口技術手冊

    ADIS16060是一款偏航角速度陀螺儀,采用集成式串行外設接口(SPI),具有可從外部選擇的帶寬響應和可調整動態范圍。 通過SPI端口可以訪問偏航角速度傳感器、內部溫度傳感器以
    的頭像 發表于 05-07 16:43 ?996次閱讀
    ADIS16060寬帶寬偏航角速度陀螺儀,采用<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>技術手冊

    串行通信接口SPI與QSPI的區別

    在嵌入式系統的世界里,選擇正確的通信技術可以對項目的性能和可擴展性產生重大影響。讓我們比較兩個流行的串行通信接口SPI(串行外設接口)和QSPI(四路SPI)。
    的頭像 發表于 04-09 15:24 ?3264次閱讀
    串行通信<b class='flag-5'>接口</b><b class='flag-5'>SPI</b>與QSPI的區別