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

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

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

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

操縱MCU SPI接口以訪問非標準SPI ADC

亞德諾半導(dǎo)體 ? 來源:Coco_cocO ? 作者:Steven Xie ? 2020-01-17 16:34 ? 次閱讀

ADI公司 Steven Xie,產(chǎn)品應(yīng)用工程師

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

答案:可以,但可能需要做一些額外的努力。

簡介

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

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

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

與ADC的標準MCU SPI連接

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

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

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

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

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

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

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

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

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

u 解決方案4:MCU作為SPI主機和SPI從機,通過兩條DOUT線讀取數(shù)據(jù)。

圖3.SPI數(shù)據(jù)時鐘時序圖示例

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

STM32F429微控制器SPI通過一條DOUT線讀取AD7768代碼

如圖4所示,當FORMATx = 11或10時,通道0至通道7僅通過DOUT0輸出數(shù)據(jù)。在標準工作模式下,AD7768/AD7768-4作為主機工作,數(shù)據(jù)流入MCU、DSP或FPGA。AD7768/AD7768-4向從機提供數(shù)據(jù)、數(shù)據(jù)時鐘(DCLK)和下降沿幀使能信號(DRDY)。

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

AD7768/AD7768-4分別為8通道和4通道同步采樣Σ-Δ型ADC,每通道均有Σ-Δ型調(diào)制器和數(shù)字濾波器,支持交流和直流信號的同步采樣。這些器件在110.8 kHz的最大輸入帶寬下實現(xiàn)了108 dB動態(tài)范圍,具備±2 ppm INL、±50 μV偏置誤差和±30 ppm增益誤差的典型性能。AD7768/AD7768-4用戶可在輸入帶寬、輸出數(shù)據(jù)速率和功耗之間進行權(quán)衡,并選擇三種功耗模式之一以優(yōu)化噪聲目標和功耗。AD7768/AD7768-4的靈活性使其成為適合低功耗直流和高性能交流測量模塊的可重復(fù)使用平臺。遺憾的是,AD7768的串行接口不是典型SPI時序模式,而且AD7768充當串行接口主機。一般而言,用戶必須使用FPGA/CPLD作為其控制器,

例如,使用32F429IDISCOVERY和AD7768評估板。變通SPI線的連接如圖5所示。在這種設(shè)置下,AD7768的所有八通道數(shù)據(jù)僅通過DOUT0輸出。

圖5.AD7768通過DOUT0將數(shù)據(jù)輸出到STM32F429 MCU SPI連接

需要解決的問題:

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

u 高電平脈沖只持續(xù)一個DCLK周期,這不是典型的。

u 完成所有通道數(shù)據(jù)位的輸出之后,DCLK繼續(xù)輸出,為低電平。

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

u 將STM32F429的一個SPI端口(如SPI4)配置為從機,以DCLK速率接收MOSI上的數(shù)據(jù)位。

u 將AD7768 連接到STM32F429外部中斷輸入引腳EXTI0和NSS (SPI )引腳。 的上升沿將觸發(fā)EXTI0處理例程,以使SPI從機能夠在變?yōu)榈碗娖街蟮牡谝粋€DCLK下降沿開始接收數(shù)據(jù)位。時序設(shè)計在這里至關(guān)重要。

u 接收到通道0至通道7的所有數(shù)據(jù)后,應(yīng)禁用SPI以防止讀取額外的無效數(shù)據(jù),因為會使SPI從機變?yōu)榈碗娖剑⑶褼CLK保持切換。

圖6.時序解決方案中的AD7768數(shù)據(jù)位讀取

MCU固件開發(fā)注意事項

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

圖7.配置SPI4外設(shè)

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

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

圖8.AD7768通過DOUT0和DOUT1將數(shù)據(jù)輸出到STM32F429 MCU SPI連接

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

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

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

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

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

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

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

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

AD7606B是一款16位同步采樣模數(shù)轉(zhuǎn)換數(shù)據(jù)采集系統(tǒng)(DAS),具有八個通道,每個通道均包含模擬輸入箝位保護、可編程增益放大器(PGA)、低通濾波器和16位逐次逼近寄存器(SAR)型ADC。AD7606B還內(nèi)置靈活的數(shù)字濾波器、低漂移2.5 V精密基準電壓源和基準電壓緩沖器,可驅(qū)動ADC及靈活的并行和串行接口。AD7606B采用5 V單電源供電,支持±10 V、±5 V和±2.5 V真雙極性輸入范圍,所有通道均能以800 kSPS的吞吐速率采樣。

圖11.在主從模式下使用MCU SPI通過DOUTA和DOUTB接收數(shù)據(jù)

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

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

圖13.AD7606B BUSY、SCLK以及DOUTA和DOUTB上的數(shù)據(jù)的示波器截圖

結(jié)論

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

致謝

非常感謝應(yīng)用工程師Mika Jiang和Yao Zhao,他們提供了有關(guān)STM32F429IDISCOVERY套件快速啟動和固件調(diào)試工作的建議。

參考文獻

Dhaker,Piyu。“SPI接口簡介”。《模擬對話》,第52卷。2018年9月。

RM0090參考手冊:STM32F405/415、STM32F407/417、STM32F427/437和STM32F429/439高級ARM? 32位MCU。STMicroelectronics,2019年2月。

STM32F427xx數(shù)據(jù)手冊。STMicroelectronics,2018年1月。

UM1670用戶手冊:帶STM32F429ZI MCU的Discovery套件。STMicroelectronics,2017年9月。

Usach, Miguel。AN-1248應(yīng)用筆記:SPI接口。ADI公司,2015年9月。

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

    關(guān)注

    146

    文章

    17686

    瀏覽量

    357677
  • 示波器
    +關(guān)注

    關(guān)注

    113

    文章

    6436

    瀏覽量

    187545
  • adc
    adc
    +關(guān)注

    關(guān)注

    99

    文章

    6607

    瀏覽量

    547627
收藏 人收藏

    評論

    相關(guān)推薦

    串行通信接口SPI與QSPI的區(qū)別

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

    Java的SPI機制詳解

    作者:京東物流 楊葦葦 1.SPI簡介 SPI(Service Provicer Interface)是Java語言提供的一種接口發(fā)現(xiàn)機制,用來實現(xiàn)接口
    的頭像 發(fā)表于 03-05 11:35 ?581次閱讀
    Java的<b class='flag-5'>SPI</b>機制詳解

    ADC接口有Serial SPISPI兩種,它們之間有什么區(qū)別?

    我剛剛接觸ADC,想選一款芯片,看到接口SPI 和Serial SPI,哪位專業(yè)人士解答下兩者有什么區(qū)別呢?
    發(fā)表于 01-24 07:55

    DDC112U的數(shù)據(jù)輸出接口能否和MCUSPI接口進行連接?

    看了DDC112的Datasheet,關(guān)于它的數(shù)據(jù)的輸出,Datasheet好像并未明確說明其數(shù)據(jù)輸出接口(主要是這幾個信號:/DXMIT、DCLK、DOUT)是否能夠與MCUSPI接口
    發(fā)表于 01-23 06:40

    AN-878: 高速ADC SPI控制軟件[中文版]

    電子發(fā)燒友網(wǎng)站提供《AN-878: 高速ADC SPI控制軟件[中文版].pdf》資料免費下載
    發(fā)表于 01-13 14:23 ?0次下載
    AN-878: 高速<b class='flag-5'>ADC</b> <b class='flag-5'>SPI</b>控制軟件[中文版]

    探索GPIO/ADC/LED/I2C/SPI/USB…的完整世界

    今天了解的是GPIO/ADC/LED/I2C/SPI/USB硬件接口設(shè)計及其注意事項,希望對大家有所幫助。
    的頭像 發(fā)表于 11-17 09:59 ?736次閱讀
    探索GPIO/<b class='flag-5'>ADC</b>/LED/I2C/<b class='flag-5'>SPI</b>/USB…的完整世界

    spi master接口的fpga實現(xiàn)

    串行外圍接口 大致了解: spi是個同步協(xié)議,數(shù)據(jù)在master和slaver間交換通過時鐘sck,由于它是同步協(xié)議,時鐘速率就可以各種變換。 sck:主機提供,從機不能操控,從器件由主機產(chǎn)生的時鐘控制。數(shù)據(jù)只有在sck來了的上升沿或者下降沿才傳輸。 高級一點的
    的頭像 發(fā)表于 11-16 10:35 ?922次閱讀
    <b class='flag-5'>spi</b> master<b class='flag-5'>接口</b>的fpga實現(xiàn)

    SPI接口靜電放電防護方案

    SPI(Serial Peripheral Interface,串行外圍設(shè)備接口),是Motorola公司提出的一種同步串行接口技術(shù),是一種高速、全雙工、同步通信總線,在芯片中只占用四根管腳用來控制
    的頭像 發(fā)表于 09-20 15:31 ?575次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>接口</b>靜電放電防護方案

    SPI接口用于TRF7960

    電子發(fā)燒友網(wǎng)站提供《將SPI接口用于TRF7960.pdf》資料免費下載
    發(fā)表于 09-18 14:29 ?0次下載
    將<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>用于TRF7960

    SPI總線的定義和特點

    SPI總線(Serial Peripheral Interface),全稱為串行外圍設(shè)備接口,是由Motorola公司提出并定義的一種同步、串行、高速的通信總線。SPI總線以其獨特的優(yōu)勢在電子通信
    的頭像 發(fā)表于 09-03 14:05 ?1737次閱讀

    開發(fā)用于將四個ADC通道連接到MCU/MPU的自定義多通道SPI

    電子發(fā)燒友網(wǎng)站提供《開發(fā)用于將四個ADC通道連接到MCU/MPU的自定義多通道SPI.pdf》資料免費下載
    發(fā)表于 09-02 10:12 ?0次下載
    開發(fā)用于將四個<b class='flag-5'>ADC</b>通道連接到<b class='flag-5'>MCU</b>/MPU的自定義多通道<b class='flag-5'>SPI</b>

    【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(8)SPI 模塊介紹

    串行外設(shè)接口(Serial Peripheral Interface,縮寫為 SPI) 提供了基于SPI 協(xié)議的數(shù)據(jù)發(fā)送和接收功能, 可以工作于主機或從機模式。 SPI
    的頭像 發(fā)表于 08-17 09:36 ?1120次閱讀
    【GD32 <b class='flag-5'>MCU</b> 入門教程】GD32 <b class='flag-5'>MCU</b> 常見外設(shè)介紹(8)<b class='flag-5'>SPI</b> 模塊介紹

    ADS7028小型8通道12位ADC,具有SPI接口、GPIO和CRC數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《ADS7028小型8通道12位ADC,具有SPI接口、GPIO和CRC數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 07-25 11:42 ?0次下載
    ADS7028小型8通道12位<b class='flag-5'>ADC</b>,具有<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>、GPIO和CRC數(shù)據(jù)表

    spi_flash_read接口訪問SPI外掛的FLASH,無法返回是怎么回事?

    _EXT3(HSPI), 0x3); SET_PERI_REG_MASK(SPI_USER(HSPI), BIT(5)); 做了以上初始化后,用spi_flash_read這個接口訪問
    發(fā)表于 07-18 06:40

    用STM32L051來設(shè)計一款變送器模塊,MCUSPI接口接收中斷標志位就是不置位,為什么?

    我們現(xiàn)在用STM32L051來設(shè)計一款變送器模塊。4~20mA 接口MCU通過ADCSPI接口) 采集傳感器輸出 的信號。因為我們要求
    發(fā)表于 05-16 06:48
    主站蜘蛛池模板: 性xxx中文视频 | 狠狠躁夜夜躁人人爽天天天天 | 高清精品女厕在线观看 | 色婷婷色婷婷 | 97av在线| 中文字字幕码一二区 | 俺去啦最新网址 | 亚洲国产综合久久精品 | 伊人久久大香线蕉综合爱婷婷 | 边做边爱在线观看视频免费 | 你懂的欧美 | 午夜影院欧美 | 美女视频黄a视频美女大全 美女视频一区二区 | 不卡视频免费在线观看 | 欧美一级视频在线观看欧美 | 最猛91大神ben与女教师 | 欲色影视 | 日本三级黄视频 | 丁香婷婷久久 | 免费aa视频| 一级片aaa | 久久综合九色欧美综合狠狠 | 色爱综合区五月小说 | 永久免费在线观看 | 天天槽天天槽天天槽 | 狠狠插天天干 | 有没有免费的视频在线观看 | 公妇乱淫日本免费观看 | 亚洲精品亚洲人成人网 | 1515hh四虎免费观com | 2021国内精品久久久久影院 | 手机在线免费观看视频 | 夜夜骑天天干 | 亚洲91色 | 国产国拍亚洲精品mv在线观看 | 青青热久免费精品视频在线观看 | 日本黄色片在线播放 | 天天躁日日躁狠狠躁一级毛片 | 欧美freesex交 | 亚洲综合激情丁香六月 | 丁香婷婷开心激情深爱五月 |