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

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

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

如何優(yōu)化MCU SPI驅(qū)動程序以實現(xiàn)高ADC吞吐速率

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:Denny Wang 和 Sally ? 2023-06-12 15:26 ? 次閱讀

Denny WangSally Tseng

隨著技術(shù)的進步,低功耗物聯(lián)網(wǎng)(IoT)和邊緣/云計算需要更精確的數(shù)據(jù)傳輸。圖1展示的無線監(jiān)測系統(tǒng)是一個帶有24位模數(shù)轉(zhuǎn)換器(ADC)的高精度數(shù)據(jù)采集系統(tǒng)。在此我們通常會遇到這樣一個問題,即微控制單元(MCU)能否為數(shù)據(jù)轉(zhuǎn)換器提供高速的串行接口。

本文描述了設(shè)計MCU和ADC之間的高速串行外設(shè)接口(SPI)關(guān)于數(shù)據(jù)事務(wù)處理驅(qū)動程序的流程,并簡要介紹了優(yōu)化SPI驅(qū)動程序的不同方法及其ADC與MCU配置。本文還詳細介紹了SPI和直接存儲器訪問(DMA)關(guān)于數(shù)據(jù)事務(wù)處理的示例代碼。最后,本文演示了在不同MCU(ADuCM4050、MAX32660)中使用相同驅(qū)動程序時ADC的吞吐率。

wKgaomSGyneAaUMkAABPRv1fuX0102.png

圖1. 狀態(tài)監(jiān)控。

通用SPI驅(qū)動程序簡介

通常,MCU廠商會在例程代碼中提供通用的SPI驅(qū)動程序/API。通用SPI驅(qū)動程序/API通常可以涵蓋大多數(shù)用戶的應(yīng)用,這些代碼可能包含許多配置或判斷語句。但在某些特定情況下,比如ADC數(shù)據(jù)采集,通用的SPI驅(qū)動程序可能無法滿足ADC數(shù)據(jù)的全速的吞吐速率需求,因為通用的驅(qū)動程序中有過多的配置,而未使用的配置會產(chǎn)生額外的開銷并導(dǎo)致時間延遲。

wKgaomSGypaAIU7OAAAYdY6VFuc138.png

圖2. 通用API的配置。

設(shè)計思路與實踐框架

我們通常會選擇低功耗高性能的MCU作為主機通過SPI提取ADC的輸出數(shù)據(jù)。但是,由于ADI的SPI驅(qū)動程序的數(shù)據(jù)事務(wù)處理命令存在冗余,因此數(shù)據(jù)輸出速率可能被顯著降低。為了充分釋放ADC的潛在速率,本文使用ADuCM4050和 AD7768-1 進行實驗并嘗試可能的解決方案。盡管在使用默認濾波器的情況下,ADuCM4050的最大數(shù)據(jù)輸出速率可達256 kHz,但在當前情況下,其速率被限制在8 kHz。提高輸出速率的潛在解決方案包括刪除不必要的命令以及激活DMA控制器。本文將在以下小節(jié)中介紹這些思路。

wKgZomSGyp2AIjVVAADIYa-vD4M557.png

圖3. 不同ODR以及DRDY與SCLK之間的關(guān)系。

以MCU作為主機

ADuCM4050 MCU是一款主時鐘速率為26 MHz的超低功耗微控制器,內(nèi)核為ARM? Cortex?-M4F處理器。ADuCM4050配有三個SPI,每個SPI都有兩個DMA通道(接收和發(fā)射通道)可與DMA控制器連接。DMA控制器和DMA通道可實現(xiàn)存儲器與外設(shè)之間的數(shù)據(jù)傳輸。這是一種高效的數(shù)據(jù)分配方法,可將內(nèi)核釋放以處理其他任務(wù)。

以ADC作為從機

AD7768-1是一款24位低功耗、高性能的Σ-Δ ADC。其數(shù)據(jù)輸出速率(ODR)和功耗模式均可根據(jù)用戶的要求進行配置。ODR由抽取系數(shù)和功耗模式共同決定,如表1中所示。

功耗模式 抽取系數(shù) ODR
快速功耗(MCLK/2) ×32 256 kHz
快速功耗(MCLK/2) ×64 128 kHz
中速功耗(MCLK/4) ×32 128 kHz
中速功耗(MCLK/4) ×64 64 kHz
低速功耗(MCLK/16) ×32 32 kHz
低速功耗(MCLK/16) ×64 16 kHz

AD7768-1的連續(xù)讀取模式也是該產(chǎn)品的一個重要特性。ADC的輸出數(shù)據(jù)存儲在寄存器0x6C中。一般而言,每次讀/寫操作之前,ADC寄存器中的數(shù)據(jù)都需要地址才可以訪問,但是連續(xù)讀取模式則支持在收到每個數(shù)據(jù)就緒信號后直接從0x6C寄存器提取數(shù)據(jù)。ADC的輸出數(shù)據(jù)為24位的數(shù)字信號,對應(yīng)的電壓如表2所示。

說明 模擬輸入電壓 數(shù)字輸出碼
+全擺幅–1 LSB +4.095999512 V 0x7FFFFF
中間電平+1 LSB +488 nV 0x000001
中間電平 0 V 0x000000
中間電平-1 LSB –488 nV 0xFFFFFF
-全擺幅–1 LSB –4.095999512 V 0x800001
-全擺幅 +4.096 V 0x800000

引腳連接示意圖

ADuCM4050和AD7768-1組成的數(shù)據(jù)事務(wù)處理示例模型的引腳連接如圖4所示。

ADC的復(fù)位信號引腳RST_1連接至MCU的GPIO28,而數(shù)據(jù)就緒信號引腳DRDY_1則連接至MCU的GPIO27。其余引腳則根據(jù)通用的SPI配置標準進行連接,其中MCU為主機,而ADC為從機。SDI_1接收MCU發(fā)送的ADC寄存器讀/寫命令,而DOUT_1則將ADC的輸出數(shù)據(jù)發(fā)送至MCU。

wKgZomSGywWAXRE1AAAzQ7_IP0Q786.png

圖4. AD7768-1和ADuCM4050的接口引腳連接。

數(shù)據(jù)事務(wù)處理的實現(xiàn)

中斷數(shù)據(jù)事務(wù)處理

為實現(xiàn)連續(xù)數(shù)據(jù)事務(wù)處理,本文將MCU的GPIO27引腳(連接至ADC的DRDY_1引腳)用作中斷觸發(fā)引腳。ADC將數(shù)據(jù)就緒信號發(fā)送至GPIO27時會觸發(fā)MCU包含數(shù)據(jù)事務(wù)處理命令的中斷回調(diào)函數(shù)。如圖5所示,數(shù)據(jù)采集必須在中斷A和中斷B之間的時間間隔內(nèi)進行。

利用ADI的SPI驅(qū)動程序可以在ADC和MCU之間輕松實現(xiàn)數(shù)據(jù)事務(wù)處理。但是,由于驅(qū)動程序內(nèi)存在冗余命令,ADC的ODR會被限制在8 kHz。本文盡可能地精簡了代碼以加快ODR,將介紹實現(xiàn)DMA數(shù)據(jù)事務(wù)處理的兩種方法:基本模式的DMA事務(wù)處理和乒乓模式的DMA事務(wù)處理。

wKgaomSGywCAYMbhAAATpz8MbdQ070.png

圖5. 兩次中斷的時間間隔。

基本模式的DMA事務(wù)處理

在實現(xiàn)每個DMA事務(wù)處理之前需要對SPI和DMA進行配置(參見圖6中的示例代碼)。SPI_CTL為SPI配置,其值為0x280f,源于ADI的SPI驅(qū)動程序的設(shè)定值。SPI_CNT為傳輸字節(jié)數(shù)。由于每個DMA事務(wù)處理只能發(fā)送固定的16位數(shù)據(jù),因此SPI_CNT必須是2的倍數(shù)。本例設(shè)置SPI_CNT為4,以滿足ADC的24位的輸出數(shù)據(jù)要求。SPI_DMA寄存器為SPI的DMA使能寄存器,設(shè)定其值為0x5以使能DMA接收請求。命令pADI_DMA0->EN_SET=(1<<5)使能第五個通道的DMA,即SPI0 RX。

名稱 說明
SRC_END_PTR 來源端指針
DST_END_PTR 目標端指針
CHNL_CFG 控制數(shù)據(jù)配置

每個DMA通道都有一個DMA結(jié)構(gòu)寄存器,如表3中所示。需要指出的是,這里的數(shù)據(jù)來源地址的結(jié)尾(即SPI0 Rx,亦即來源端指針SRC_END_PTR)在整個操作期間無需增加,因為Rx FIFO會自動將寄存器中的數(shù)據(jù)推送出去。另一方面,數(shù)據(jù)目標地址的結(jié)尾(即目標端指針DST_END_PTR)根據(jù)ADI的SPI驅(qū)動程序的使用函數(shù)計算得出,即目標地址+ SPI_CNT -2。

當前地址為內(nèi)部數(shù)組緩沖區(qū)的地址。DMA控制數(shù)據(jù)配置CHNL_CFG包括來源數(shù)據(jù)大小、來源地址增量、目標地址增量、剩余傳輸次數(shù)和DMA控制模式等設(shè)置,其值0x4D000011按照表4中所述的設(shè)置配置。

寄存器 說明
DST_INC 目標地址增量 2字節(jié)
SRC_INC 來源地址增量 0
SRC_SIZE 來源地址增量 2字節(jié)
N_minus_1 當前DMS周期中的總傳輸次數(shù)- 1 1 (N = 2)
Cycle_ctrl DMA周期的工作模式 基本模式

SCLK時鐘通過偽讀取命令SPI_SPI0 -> RX啟動,輸出數(shù)據(jù)通過MISO從ADC傳至MCU。MOSI上其它的數(shù)據(jù)傳輸可以忽略不計。一旦完成Rx的FIFO填充,DMA請求就會生成從而激活DMA控制器,以將數(shù)據(jù)從DMA來源地址(即SPI0 Rx FIFO)傳輸至DMA目標地址(即內(nèi)部數(shù)組的緩沖區(qū))。值得注意的是,SPI_DMA=0x3時會生成Tc請求。

最后,通過將當前目標地址加4的方式將目標地址用于下一個4字節(jié)的傳輸。

請注意,SPI0 DMA通道的pADI_DMA0->DSTADDR_CLRpADI_DMA0->RMSK_CLR必須在首次中斷觸發(fā)之前在主函數(shù)中設(shè)置。前一個為DMA通道目標地址減量使能清零寄存器,用于在增量模式下設(shè)置每次DMA傳輸后的目標地址移位(目標地址計算函數(shù)僅在增量模式下有效)。后一個為DMA通道請求屏蔽清零寄存器,用于將通道的DMA請求狀態(tài)清零。

基本模式的DMA事務(wù)處理時間圖如圖7a所示。圖中三個時隙分別代表DRDY信號、SPI/DMA設(shè)置和DMA數(shù)據(jù)事務(wù)處理。在該模式中,CPU的空閑時間較多,因此希望DMA控制器在處理數(shù)據(jù)傳輸時能將任務(wù)分配給CPU。

wKgZomSGyvmAMhXdAABGQS82Z4k237.png

圖6. 基本DMA事務(wù)處理模式的代碼。

乒乓模式的DMA事務(wù)處理

在執(zhí)行偽讀取命令后,DMA控制器會開始數(shù)據(jù)事務(wù)處理,從而使得MCU的CPU處于空閑狀態(tài)而不處理任何任務(wù)。如果能夠讓CPU和DMA控制器同時工作,那么任務(wù)處理就從串行模式轉(zhuǎn)變?yōu)椴⑿心J健_@樣,就可以同時進行DMA配置(通過CPU)以及DMA數(shù)據(jù)事務(wù)處理(通過DMA控制器)。為實現(xiàn)這一思路,需要設(shè)置DMA控制器處于乒乓模式。乒乓模式將兩組DMA結(jié)構(gòu)進行了整合:主結(jié)構(gòu)和備用結(jié)構(gòu)。每次DMA請求時,DMA控制器會在兩組結(jié)構(gòu)之間自動切換。變量p的初始設(shè)置為0,其值表示是主DMA結(jié)構(gòu)(p = 0)還是備用DMA結(jié)構(gòu)(p = 1)負責數(shù)據(jù)事務(wù)處理。如果p = 0,則在收到偽讀取命令時啟動主DMA結(jié)構(gòu)進行數(shù)據(jù)事務(wù)處理,同時會為備用DMA結(jié)構(gòu)分配值,使其在下一個中斷周期內(nèi)負責數(shù)據(jù)事務(wù)處理。如果p = 1,則主結(jié)構(gòu)和備用結(jié)構(gòu)的作用互換。當僅有主結(jié)構(gòu)處于基本DMA模式時,在DMA事務(wù)處理期間對DMA結(jié)構(gòu)的修改會失敗。乒乓模式使得CPU能夠訪問和寫入備用DMA結(jié)構(gòu),而DMA控制器可以讀取主結(jié)構(gòu),反之亦然。如圖7b所示,由于DMA的結(jié)構(gòu)配置是在最后一個周期內(nèi)完成的,因此在DRDY信號從ADC傳送至MCU后DMA數(shù)據(jù)事務(wù)處理可以被立即執(zhí)行,使得CPU和DMA同時工作而無需等待?,F(xiàn)在,ADC的ODR得到了提升空間,因為總的工作時間已大大縮短。

wKgZomSGyvKAQVfDAAA3cwgbW0o460.png

圖7. (a)基本模式DMA和(b)乒乓模式的時間圖。

中斷處理程序的優(yōu)化

兩次DRDY信號之間的時間間隔不僅包括了中斷回調(diào)函數(shù)的命令執(zhí)行時間,還包括了ADI的GPIO中斷處理函數(shù)的命令執(zhí)行時間。

當MCU啟動時,CPU會運行啟動文件(即startup.s)。所有事件的處理函數(shù)均在該文件中定義,包括GPIO中斷處理函數(shù)。一旦觸發(fā)GPIO中斷,CPU就會執(zhí)行中斷處理函數(shù)(即ADI的GPIO驅(qū)動程序中的GPIO_A_INT_HANDLER和GPIO_B_INT_HANDLER)。通用的中斷處理函數(shù)會在所有的GPIO引腳中搜索觸發(fā)中斷的引腳并清零其中斷狀態(tài)、運行回調(diào)函數(shù)。由于DRDY是本文應(yīng)用的唯一中斷信號,因此可以對函數(shù)進行簡化以加快進程??蛇x的解決方案包括(1)在啟動文件中重新定位目標,以及(2)修改原始的中斷處理函數(shù)。重新定位目標意味著自定義中斷處理函數(shù),并替換啟動文件中的原始的中斷處理函數(shù)。

而修改原始的中斷處理函數(shù)只需要添加一個自定義的GPIO驅(qū)動程序。本文采用第二種方案修改原始的中斷處理函數(shù),如圖8所示。該方案只將連接至DRDY的GPIO的引腳中斷狀態(tài)清零,并直接轉(zhuǎn)到回調(diào)函數(shù)。請注意,這里需要通過取消選擇build target中關(guān)于原始GPIO驅(qū)動函數(shù)的勾選框內(nèi)容來隔離原始的GPIO驅(qū)動程序。

wKgaomSGyuuAKxrfAAAhatofKG8005.png

圖8. 嵌套矢量中斷控制器(NVIC)。

結(jié)果

速率性能

假定現(xiàn)在需要讀取200個24位的ADC輸出數(shù)據(jù),并且SPI位速率設(shè)置為13 MHz。將DRDY信號和SCLK信號的引腳連接至示波器,可以通過觀察DRDY信號與SPI數(shù)據(jù)事務(wù)處理(亦即DMA事務(wù)處理)啟動之間的時間間隔的方法可以量化本文所述的每種方法對速率的改善程度。這里將DRDY信號至SCLK信號開始的時間間隔記為?t,那么對于13 MHz的SPI速率,測量得出的?t為:

(a)基本模式DMA Δt = 3.754 μs

(b)乒乓模式DMA Δt = 2.8433 μs

(c)乒乓模式DMA(使用優(yōu)化的中斷處理函數(shù))Δt = 1.694 μs

方法(a)和(b)可支持64 kHz的ODR,而方法(c)可支持128 kHz的ODR。這是因為方法(c)的?t最短,從而使得SCLK信號能夠更早結(jié)束。如果SCLK信號(即數(shù)據(jù)事務(wù)處理)能在T/2之前完成(T為當前ADC的數(shù)據(jù)輸出周期),則ODR可實現(xiàn)翻倍。這較之于原始的ADISPI驅(qū)動程序可以達到的8 kHz的ODR性能是一次巨大的進步。

wKgZomSGyuWAKaloAAIunUNGBYQ789.png

圖9. (a)基本模式DMA、(b)乒乓模式以及(c)乒乓模式(使用優(yōu)化的中斷處理函數(shù))的Δt。

使用MAX32660控制AD7768-1

使用主時鐘速率為96 MHz的MCU MAX32660控制AD7768-1)時的結(jié)果如何?在該情況下,使用優(yōu)化的中斷處理函數(shù)的中斷設(shè)置,可在不使用DMA函數(shù)的情況下實現(xiàn)256 kHz的數(shù)據(jù)輸出速率。參見圖10。

wKgaomSGyt-ARdYWAACncNycDLM293.png

圖10. 不使用DMA時MAX32660的ODR。

結(jié)論

本文利用選定的ADC(AD7768-1)和MCU(ADuCM4050或MAX32660)通過SPI實現(xiàn)了高速的數(shù)據(jù)事務(wù)處理。為實現(xiàn)速率優(yōu)化的目標,本文簡化了ADI的SPI驅(qū)動程序執(zhí)行數(shù)據(jù)事務(wù)處理。此外本文提出,激活DMA控制器釋放內(nèi)核也可以加快連續(xù)數(shù)據(jù)事務(wù)處理的流程。在DMA的乒乓模式下,DMA的配置時間可通過適當?shù)恼{(diào)度來節(jié)省。在此基礎(chǔ)上,還可以通過直接指定中斷引腳的方式優(yōu)化中斷處理函數(shù)。在13 MHz的SPI位速率下,本文提出的方案的最佳性能可達到128 kSPS的ADC ODR。

ADuCM4050 (MCU) MAX32660 (MCU)
數(shù)據(jù)事務(wù)處理 未經(jīng)優(yōu)化的中斷 基本模式DMA 乒乓模式DMA 經(jīng)優(yōu)化的中斷 經(jīng)優(yōu)化的中斷
總線類型 SPI SPI SPI SPI SPI
主時鐘速率 26 MHz 26 MHz 26 MHz 26 MHz 96 MHz
DRDY與SCLK之間的時間間隔 6.34 μs 3.754 μs 2.834 μs 1.694 μs 1.464 μs
數(shù)據(jù)輸出速率 8 kSPS 32 kSPS 64 kSPS 128 kSPS 256 kSPS

審核編輯:郭婷

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

    關(guān)注

    97

    文章

    6348

    瀏覽量

    543390
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2899

    文章

    43812

    瀏覽量

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

    關(guān)注

    17

    文章

    1684

    瀏覽量

    91068
收藏 人收藏

    評論

    相關(guān)推薦

    采用WinCE實現(xiàn)SPI接口驅(qū)動程序

    中即可。結(jié) 語本文詳細介紹了Platform Builder下SPI接口驅(qū)動程序設(shè)計以及驅(qū)動程序同應(yīng)用程序交互的實現(xiàn)。
    發(fā)表于 05-20 05:00

    Linux設(shè)備驅(qū)動程序的平臺驅(qū)動程序和字符驅(qū)動程序介紹

    了解Linux設(shè)備驅(qū)動程序的基礎(chǔ)知識,重點介紹平臺驅(qū)動程序和字符驅(qū)動程序。 提出了簡單的平臺驅(qū)動程序實現(xiàn)和簡單的字符
    的頭像 發(fā)表于 11-27 06:32 ?4226次閱讀

    嵌入式Linux系統(tǒng)的驅(qū)動原理和使用ARM Linux實現(xiàn)SPI驅(qū)動程序的說明

    介紹嵌入式Linux系統(tǒng)的驅(qū)動原理;分析SPI協(xié)議的通信原理和微處理器S3C2440A中SPI接口的硬件結(jié)構(gòu);闡述SPI驅(qū)動程序
    發(fā)表于 11-14 16:36 ?11次下載
    嵌入式Linux系統(tǒng)的<b class='flag-5'>驅(qū)動</b>原理和使用ARM Linux<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>SPI</b><b class='flag-5'>驅(qū)動程序</b>的說明

    AD7887 IIO ADC Linux驅(qū)動程序

    AD7887 IIO ADC Linux驅(qū)動程序
    發(fā)表于 04-20 20:29 ?6次下載
    AD7887 IIO <b class='flag-5'>ADC</b> Linux<b class='flag-5'>驅(qū)動程序</b>

    AD7998 IIO ADC Linux驅(qū)動程序

    AD7998 IIO ADC Linux驅(qū)動程序
    發(fā)表于 04-21 20:33 ?16次下載
    AD7998 IIO <b class='flag-5'>ADC</b> Linux<b class='flag-5'>驅(qū)動程序</b>

    SAR ADC驅(qū)動程序

    SAR ADC驅(qū)動程序
    發(fā)表于 04-23 13:46 ?2次下載
    SAR <b class='flag-5'>ADC</b><b class='flag-5'>驅(qū)動程序</b>

    IIO單通道串行ADC Linux驅(qū)動程序

    IIO單通道串行ADC Linux驅(qū)動程序
    發(fā)表于 05-19 18:26 ?5次下載
    IIO單通道串行<b class='flag-5'>ADC</b> Linux<b class='flag-5'>驅(qū)動程序</b>

    AD7291 IIO ADC Linux驅(qū)動程序

    AD7291 IIO ADC Linux驅(qū)動程序
    發(fā)表于 05-23 16:44 ?3次下載
    AD7291 IIO <b class='flag-5'>ADC</b> Linux<b class='flag-5'>驅(qū)動程序</b>

    用于SPI軟件的Windows 7驅(qū)動程序

    用于SPI軟件的Windows 7驅(qū)動程序
    發(fā)表于 06-10 15:13 ?9次下載
    用于<b class='flag-5'>SPI</b>軟件的Windows 7<b class='flag-5'>驅(qū)動程序</b>

    STM32的ADC驅(qū)動程序

    STM32的ADC驅(qū)動程序(電源技術(shù)被踢出核心)-? STM32的ADC驅(qū)動程序,環(huán)境是MDK,ADC的所有函數(shù)
    發(fā)表于 09-23 13:43 ?37次下載
    STM32的<b class='flag-5'>ADC</b><b class='flag-5'>驅(qū)動程序</b>

    如何優(yōu)化MCU SPI驅(qū)動程序實現(xiàn)ADC吞吐速率

    隨著技術(shù)的進步,低功耗物聯(lián)網(wǎng)(IoT)和邊緣/云計算需要更精確的數(shù)據(jù)傳輸。圖1展示的無線監(jiān)測系統(tǒng)是一個帶有24位模數(shù)轉(zhuǎn)換器(ADC)的高精度數(shù)據(jù)采集系統(tǒng)。在此我們通常會遇到這樣一個問題,即微控制單元(MCU)能否為數(shù)據(jù)轉(zhuǎn)換器提供高速的串行接口。
    的頭像 發(fā)表于 03-30 11:57 ?766次閱讀

    如何優(yōu)化MCU SPI驅(qū)動程序實現(xiàn)ADC吞吐速率

    隨著技術(shù)的進步,低功耗物聯(lián)網(wǎng)(IoT)和邊緣/云計算需要更精確的數(shù)據(jù)傳輸。圖1展示的無線監(jiān)測系統(tǒng)是一個帶有24位模數(shù)轉(zhuǎn)換器(ADC)的高精度數(shù)據(jù)采集系統(tǒng)。在此我們通常會遇到這樣一個問題,即微控制單元(MCU)能否為數(shù)據(jù)轉(zhuǎn)換器提供高速的串行接口。
    的頭像 發(fā)表于 04-19 13:41 ?412次閱讀
    如何<b class='flag-5'>優(yōu)化</b><b class='flag-5'>MCU</b> <b class='flag-5'>SPI</b><b class='flag-5'>驅(qū)動程序</b><b class='flag-5'>以</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高</b><b class='flag-5'>ADC</b><b class='flag-5'>吞吐</b><b class='flag-5'>速率</b>

    優(yōu)化MCU SPI驅(qū)動程序實現(xiàn)ADC吞吐速率

    隨著技術(shù)的進步,低功耗物聯(lián)網(wǎng)(IoT)和邊緣/云計算需要更精確的數(shù)據(jù)傳輸。圖1展示的無線監(jiān)測系統(tǒng)是一個帶有24位模數(shù)轉(zhuǎn)換器(ADC)的高精度數(shù)據(jù)采集系統(tǒng)。在此我們通常會遇到這樣一個問題,即微控制單元(MCU)能否為數(shù)據(jù)轉(zhuǎn)換器提供高速的串行接口。
    的頭像 發(fā)表于 05-08 14:52 ?575次閱讀
    <b class='flag-5'>優(yōu)化</b><b class='flag-5'>MCU</b> <b class='flag-5'>SPI</b><b class='flag-5'>驅(qū)動程序</b><b class='flag-5'>以</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高</b><b class='flag-5'>ADC</b><b class='flag-5'>吞吐</b><b class='flag-5'>速率</b>

    【世說設(shè)計】優(yōu)化MCU SPI驅(qū)動程序實現(xiàn)ADC吞吐速率

    單元(MCU)能否為數(shù)據(jù)轉(zhuǎn)換器提供高速的串行接口。本文描述了設(shè)計MCUADC之間的高速串行外設(shè)接口(SPI)關(guān)于數(shù)據(jù)事務(wù)處理驅(qū)動程序的流程
    的頭像 發(fā)表于 05-22 10:00 ?636次閱讀
    【世說設(shè)計】<b class='flag-5'>優(yōu)化</b><b class='flag-5'>MCU</b> <b class='flag-5'>SPI</b><b class='flag-5'>驅(qū)動程序</b><b class='flag-5'>以</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高</b><b class='flag-5'>ADC</b><b class='flag-5'>吞吐</b><b class='flag-5'>速率</b>

    如何優(yōu)化MCU SPI驅(qū)動程序實現(xiàn)ADC吞吐速率

    如何優(yōu)化MCU SPI驅(qū)動程序實現(xiàn)
    的頭像 發(fā)表于 10-24 16:03 ?541次閱讀
    如何<b class='flag-5'>優(yōu)化</b><b class='flag-5'>MCU</b> <b class='flag-5'>SPI</b><b class='flag-5'>驅(qū)動程序</b><b class='flag-5'>以</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高</b><b class='flag-5'>ADC</b><b class='flag-5'>吞吐</b><b class='flag-5'>速率</b>