日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

實(shí)戰(zhàn) | 睿擎派 + AD7606:FlexBus + DMA 高速數(shù)據(jù)采集實(shí)戰(zhàn),200kSPS 8通道同步采樣

RT-Thread官方賬號(hào) ? 2026-05-06 18:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在工業(yè)數(shù)據(jù)采集、電力監(jiān)控、振動(dòng)分析等場(chǎng)景中,高速、多通道、同步采樣是核心需求。傳統(tǒng) MCU 方案往往面臨 CPU 占用高、數(shù)據(jù)吞吐不足的瓶頸。

今天分享一個(gè)基于睿擎派 RC3506的完整方案——利用FlexBus 并行總線驅(qū)動(dòng)AD7606 ADC,配合DMA 數(shù)據(jù)搬運(yùn),實(shí)現(xiàn)8通道高速同步采樣,CPU 幾乎零介入。


效果先看

通過串口將采集數(shù)據(jù)發(fā)送至VOFA+上位機(jī),波形實(shí)時(shí)顯示:

09e5276a-4934-11f1-ab55-92fbcf53809c.gif

8通道同步采樣波形展示(通道1-4: ±5V,通道5-8: ±10V)


為什么選這個(gè)方案?

AD7606 簡(jiǎn)介

AD7606 是 ADI 推出的一款多通道同步采樣 ADC,堪稱工業(yè)數(shù)據(jù)采集的"瑞士軍刀":

特性

參數(shù)

通道數(shù)

8通道同步采樣

分辨率

16位

采樣率

最高 200kSPS(無過采樣)

輸入范圍

±10V 或 ±5V(可選)

接口

并行/串行可選

數(shù)據(jù)格式

16位補(bǔ)碼

典型應(yīng)用場(chǎng)景:

電力系統(tǒng)監(jiān)測(cè)(諧波分析、電能質(zhì)量)

工業(yè)自動(dòng)化PLC、伺服控制信號(hào)采集)

振動(dòng)分析(多軸加速度傳感器

聲學(xué)檢測(cè)(多通道麥克風(fēng)陣列)


為什么需要 FlexBus + DMA?

傳統(tǒng)的 ADC 采集方式存在兩大痛點(diǎn):

1.CPU 輪詢等待:CPU 不斷查詢 BUSY 信號(hào),采集期間無法處理其他任務(wù)

2.數(shù)據(jù)搬運(yùn)耗時(shí):每個(gè)采樣點(diǎn)都需要 CPU 執(zhí)行多次 IO 操作,占用大量 CPU 周期

以 200kSPS 采樣率為例:

每秒采樣次數(shù):200,000 次

每幀數(shù)據(jù)量:8通道 × 2字節(jié) = 16字節(jié)

數(shù)據(jù)傳輸率:200,000 × 16 =3.2MB/s

如果全靠 CPU 輪詢和拷貝,負(fù)載會(huì)非常高。而 FlexBus + DMA 方案:

DMA 自動(dòng)搬運(yùn):數(shù)據(jù)從 FlexBus 直接傳輸?shù)絻?nèi)存,CPU 零介入

硬件定時(shí)器觸發(fā):采樣時(shí)機(jī)由硬件定時(shí)器精確控制,抖動(dòng)極小

中斷通知:一幀數(shù)據(jù)采集完成后,通過事件機(jī)制通知 CPU 處理


硬件連接

硬件清單

0a1261e4-4934-11f1-ab55-92fbcf53809c.png



連接示意


連接示意

0a1e18ea-4934-11f1-ab55-92fbcf53809c.png


擴(kuò)展板即將上架淘寶店,敬請(qǐng)期待!


關(guān)鍵信號(hào)說明:

CONVST A/B:?jiǎn)?dòng)轉(zhuǎn)換信號(hào),同時(shí)觸發(fā) 8 通道同步采樣

BUSY:轉(zhuǎn)換進(jìn)行中指示,轉(zhuǎn)換完成后拉低

CS + RD:讀取數(shù)據(jù)控制信號(hào)

OS0-OS2:過采樣倍率配置(200kSPS ~ 3.125kSPS)

RANGE:輸入范圍選擇(±5V 或 ±10V)


軟件架構(gòu)

整個(gè)驅(qū)動(dòng)分為三層:

0a3b64ea-4934-11f1-ab55-92fbcf53809c.png

采樣流程

0a4a5284-4934-11f1-ab55-92fbcf53809c.png


核心驅(qū)動(dòng)解析

1. 設(shè)備結(jié)構(gòu)體

structad7606_device{ structrt_adc_deviceadc_dev; // 繼承 ADC 設(shè)備 rt_adc_device_tfb_dev; // FlexBus ADC 句柄 structrt_device*dev; // 平臺(tái)設(shè)備 structrt_dma_chan*dma_chan; // DMA 通道
// GPIO 引腳定義 rt_uint32_tcs_pin, rd_pin, rst_pin; rt_uint32_tbusy_pin, range_pin; rt_uint32_tcva_pin, cvb_pin; rt_uint32_tos0_pin, os1_pin, os2_pin;
// 配置參數(shù) rt_uint32_toversampling; // 過采樣倍率 rt_uint32_trange; // 輸入范圍
// 采樣狀態(tài) rt_sem_tdata_sem; // 數(shù)據(jù)就緒信號(hào)量 rt_thread_tsample_tid; // 采樣線程 volatilert_bool_tdata_ready; // 數(shù)據(jù)就緒標(biāo)志
// DMA 配置 rt_bool_tdma_enable; rt_uint16_t*dma_data; // DMA 源緩沖區(qū) structrt_adc_dma_cfgdma_cfg; // DMA 目標(biāo)配置};


2. 硬件定時(shí)器觸發(fā)采樣

采樣時(shí)機(jī)由硬件定時(shí)器精確控制,避免了軟件延時(shí)帶來的抖動(dòng):

staticrt_err_tad7606_hwtimer_timeout(rt_device_tdev,rt_size_tsize){ structad7606_device*ad_dev = (structad7606_device *)dev->user_data;
if(ad_dev && ad_dev->enabled) { // 拉低 CONVST A/B,啟動(dòng)同步采樣 rt_pin_write(ad_dev->cva_pin, PIN_LOW); rt_pin_write(ad_dev->cvb_pin, PIN_LOW); rt_hw_us_delay(1); // 脈寬至少 1μs rt_pin_write(ad_dev->cva_pin, PIN_HIGH); rt_pin_write(ad_dev->cvb_pin, PIN_HIGH); } returnRT_EOK;}


采樣頻率配置(通過設(shè)備樹或源碼設(shè)置):

過采樣

實(shí)際采樣率

說明

200kSPS

最高速,適合高速信號(hào)

×2

100kSPS

2倍過采樣,降低噪聲

×4

50kSPS

4倍過采樣

×8

25kSPS

8倍過采樣

×16

12.5kSPS

16倍過采樣

×32

6.25kSPS

32倍過采樣

×64

3.125kSPS

高精度

3. BUSY 中斷處理

BUSY 信號(hào)下降沿觸發(fā)中斷,表示一次轉(zhuǎn)換完成:

staticvoidad7606_busy_isr(void*args){ structad7606_device *ad_dev = (structad7606_device *)args;
if(ad_dev && ad_dev->enabled) { // 釋放信號(hào)量,喚醒采樣線程讀取數(shù)據(jù) rt_sem_release(ad_dev->data_sem); }}


4. DMA 數(shù)據(jù)傳輸

采樣線程檢測(cè)到 BUSY 信號(hào)后,讀取數(shù)據(jù)并通過 DMA 傳輸:

staticvoidad7606_sample_entry(void*parameter){ // ... 初始化代碼 ...
while(ad_dev->sample_run) { // 等待 BUSY 中斷釋放信號(hào)量 if(rt_sem_take(ad_dev->data_sem, timeout) == RT_EOK) { // 讀取 8 通道數(shù)據(jù) for(inti =0; i < AD7606_MAX_CHANNELS; i++)? ? ? ? ? ? {? ? ? ? ? ? ? ? rt_pin_write(ad_dev->cs_pin, PIN_LOW); rt_pin_write(ad_dev->rd_pin, PIN_LOW); ad_dev->data[i] = (rt_uint16_t)rt_adc_read(ad_dev->fb_dev, i); rt_pin_write(ad_dev->rd_pin, PIN_HIGH); rt_pin_write(ad_dev->cs_pin, PIN_HIGH);
// 寫入 DMA 緩沖區(qū) if(ad_dev->dma_enable && ad_dev->dma_data) { ad_dev->dma_data[dma_index++] = ad_dev->data[i]; } }
// DMA 傳輸觸發(fā) if(ad_dev->dma_enable && dma_index ==0) { // 刷新 CPU Cache(確保 DMA 看到最新數(shù)據(jù)) rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH, ad_dev->dma_data, buffer_len);
// 配置并啟動(dòng) DMA ret =rt_dma_prep_memcpy(dma_chan, src, dst, buffer_len); rt_dma_chan_start(dma_chan);
// 等待 DMA 完成 rt_event_recv(dma_event, EVENT_DMA_DONE, RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, timeout, RT_NULL);
// 無效化目標(biāo) Cache(確保 CPU 讀取到正確數(shù)據(jù)) rt_hw_cpu_dcache_ops(RT_HW_CACHE_INVALIDATE, dst_addr, buffer_len); } } }}


5. DMA 配置

caseRT_ADC_CMD_DMA_START:{ // 請(qǐng)求 DMA 通道 ad_dev->dma_chan =rt_dma_chan_request(ad_dev->dev, RT_NULL);
// 創(chuàng)建事件用于 DMA 完成通知 _ad7606_dma_event =rt_event_create("ad7606_event", RT_IPC_FLAG_FIFO);
// 分配 DMA 源緩沖區(qū) ad_dev->dma_data = (rt_uint16_t*)rt_calloc(1, buf_len);
// 配置 DMA(內(nèi)存到內(nèi)存拷貝模式) structrt_dma_slave_configdma_cfg = { .direction = RT_DMA_MEM_TO_MEM, .src_addr = (rt_ubase_t)ad_dev->dma_data, .dst_addr = (rt_ubase_t)adc_dma_cfg->dst_addr, }; rt_dma_chan_config(ad_dev->dma_chan, &dma_cfg);
ad_dev->dma_enable = RT_TRUE; break;}


應(yīng)用層示例

Shell 命令

intadc_vol_show(intargc,char*argv[]){ // 啟動(dòng)采集線程 _adc_thread = rt_thread_create("adc_vol", _adc_vol_show_thread, RT_NULL,2048,16,10); rt_thread_startup(_adc_thread);}MSH_CMD_EXPORT(adc_vol_show, ad7606 voltage read sample);


數(shù)據(jù)格式轉(zhuǎn)換

AD7606 輸出 16 位補(bǔ)碼格式,需要轉(zhuǎn)換為實(shí)際電壓值:

// 16 位補(bǔ)碼轉(zhuǎn)電壓值(±5V 量程)voltage = (raw_val *5000) /32767; // 單位:mV

VOFA+ 數(shù)據(jù)協(xié)議

使用 FireWater 引擎,每行數(shù)據(jù)格式:

ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8\r\n

例如:

2.500,-1.234,0.000,3.456,-5.123,10.000,0.000,0.000\r\n


運(yùn)行示例

msh />adc_vol_showadc_vol_showisrunning

預(yù)期結(jié)果:

串口 3 輸出數(shù)據(jù)流

VOFA+ 顯示 8 通道波形


注意事項(xiàng)

1. Cache 一致性

RK3506 采用 Cortex-A7 內(nèi)核,帶有 L1/L2 Cache。DMA 傳輸前后必須處理 Cache:

// DMA 傳輸前:刷新源緩沖區(qū),確保數(shù)據(jù)寫入主存rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH, src,len);// DMA 傳輸后:無效化目標(biāo)緩沖區(qū),強(qiáng)制從主存讀取rt_hw_cpu_dcache_ops(RT_HW_CACHE_INVALIDATE, dst,len);


2. 信號(hào)完整性

FlexBus 并行總線速率較高,務(wù)必注意:

使用短而等長(zhǎng)的排線

相鄰數(shù)據(jù)線之間保持地線隔離

確保參考地平面完整

3. 輸入保護(hù)

AD7606 的 ±10V 輸入范圍已內(nèi)置保護(hù)二極管,但:

嚴(yán)禁輸入超過 ±25V

熱插拔時(shí)務(wù)必?cái)嚯姴僮?/span>


擴(kuò)展應(yīng)用

1. 電力諧波分析

// 采集一個(gè)周期的電壓信號(hào)(50Hz)#defineSAMPLE_RATE 10000 // 每通道 10kSPS#defineSAMPLE_CYCLE 200 // 50Hz 一個(gè)周期需要 200 個(gè)點(diǎn)for(inti =0; i < SAMPLE_CYCLE; i++) {? ? voltage[i] =?read_adc_channel(0); ?// 讀取電壓通道}?// FFT 變換得到各次諧波分量fft_analyze(voltage, SAMPLE_CYCLE);

2. 多點(diǎn)溫度采集

配合熱電偶或 RTD 傳感器,可實(shí)現(xiàn)高精度溫度監(jiān)控:

// 8 通道溫度采集(需外接多路模擬開關(guān))#defineTHERMOCOUPLE_GAIN 1000 // 熱電偶放大倍數(shù)for(inti =0; i


總結(jié)

FlexBus + AD7606 + DMA 方案為嵌入式平臺(tái)提供了企業(yè)級(jí)數(shù)據(jù)采集能力

200kSPS 高速采樣,滿足大多數(shù)工業(yè)應(yīng)用需求

8 通道同步采樣,無相位延遲

DMA 數(shù)據(jù)搬運(yùn),CPU 幾乎零介入

硬件定時(shí)器觸發(fā),采樣精度高、抖動(dòng)小

可配置過采樣,靈活平衡速度與精度

完整示例代碼已集成到睿擎v2605版本SDK,硬件擴(kuò)展板也即將發(fā)布,敬請(qǐng)期待

0a580992-4934-11f1-ab55-92fbcf53809c.jpg


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

    關(guān)注

    100

    文章

    7951

    瀏覽量

    557052
  • 數(shù)據(jù)采集
    +關(guān)注

    關(guān)注

    42

    文章

    8350

    瀏覽量

    121283
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    583

    瀏覽量

    106308
  • 總線驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    電力系統(tǒng)中多通道同步采樣ADC(AD7606)與浮點(diǎn)DSP(ADSP-21479)通信的設(shè)計(jì)與實(shí)現(xiàn)

    74.2結(jié)論 105. DSP參考代碼 106. 參考文獻(xiàn) 121. 簡(jiǎn)介1.1 AD7606簡(jiǎn)介AD7606是16位,8通道同步
    發(fā)表于 07-25 17:48

    AD7606

    -6/AD7606-4分別是16位、8/6/4通道同步采樣模數(shù)數(shù)據(jù)采集系統(tǒng)(DAS)。這些器件內(nèi)
    發(fā)表于 06-29 14:16

    ad7606無需單獨(dú)設(shè)計(jì)濾波放大電路嗎

    用戶手冊(cè)上寫明ad7606芯片自帶?二階混疊濾波器、跟蹤保持放大器等,是否意味著我無需單獨(dú)設(shè)計(jì)濾波放大電路。如果是,那么放大倍數(shù)與濾波范圍又如何確定。ad7606采樣吞吐速率200ksps
    發(fā)表于 12-26 09:36

    FMC DMA雙緩沖方式驅(qū)動(dòng)數(shù)模轉(zhuǎn)換器AD7606

    第36章 STM32F429的FMC總線應(yīng)用之DMA雙緩沖驅(qū)動(dòng)AD76068通道同步采樣, 1
    發(fā)表于 08-09 08:40

    AD7606是16位多通道同步采樣芯片

    AD7606是16位多通道同步采樣芯片,可以處理±10V和±5V的真雙極性輸入信號(hào),并最大支持200kSPS的吞吐速率
    發(fā)表于 08-18 06:00

    ZYNQ在AD7606/AD7616加持下的能源電力方案,實(shí)現(xiàn)同步采樣

    TLZ7x-EasyEVM-S為例,講解ad7606_fft例程。3.1 功能說明PL端采集AD76068通道AD信號(hào),
    發(fā)表于 04-29 15:20

    集成式8通道數(shù)據(jù)采集系統(tǒng)AD7606中文資料

    基于16位8通道DAS AD7606的可擴(kuò)展多通道 同步采樣
    發(fā)表于 03-22 11:44 ?98次下載

    AD7606同步采樣模數(shù)數(shù)據(jù)采集系統(tǒng)的性能分析

    AD76061/AD7606-6/AD7606-4 分別是16位、8/6/4通道同步采樣模數(shù)
    的頭像 發(fā)表于 06-13 06:05 ?6073次閱讀
    <b class='flag-5'>AD7606</b><b class='flag-5'>同步</b><b class='flag-5'>采樣</b>模數(shù)<b class='flag-5'>數(shù)據(jù)采集</b>系統(tǒng)的性能分析

    16位ADC數(shù)據(jù)采集模塊AD7606資料

    AD7606 數(shù)據(jù)采集模塊,16位ADC,8通道同時(shí)200KHz頻率采集,每秒
    的頭像 發(fā)表于 11-02 17:40 ?1.9w次閱讀

    AD7606/AD7606-6/AD7606-4:8/6/4通道DAS,內(nèi)置16位、雙極性輸入、同步采樣ADC 數(shù)據(jù)手冊(cè)

    AD7606/AD7606-6/AD7606-4:8/6/4通道DAS,內(nèi)置16位、雙極性輸入、同步
    發(fā)表于 03-19 03:18 ?14次下載
    <b class='flag-5'>AD7606</b>/AD<b class='flag-5'>7606</b>-6/AD<b class='flag-5'>7606</b>-4:<b class='flag-5'>8</b>/6/4<b class='flag-5'>通道</b>DAS,內(nèi)置16位、雙極性輸入、<b class='flag-5'>同步</b><b class='flag-5'>采樣</b>ADC <b class='flag-5'>數(shù)據(jù)</b>手冊(cè)

    16位8通道同步采樣數(shù)據(jù)采集系統(tǒng)AD7606應(yīng)用介紹

    電子發(fā)燒友網(wǎng)站提供《16位8通道同步采樣數(shù)據(jù)采集系統(tǒng)AD7606應(yīng)用介紹.pdf》資料免費(fèi)下載
    發(fā)表于 11-29 11:30 ?11次下載
    16位<b class='flag-5'>8</b><b class='flag-5'>通道</b><b class='flag-5'>同步</b><b class='flag-5'>采樣</b><b class='flag-5'>數(shù)據(jù)采集</b>系統(tǒng)<b class='flag-5'>AD7606</b>應(yīng)用介紹

    16位200kSPS的ADC替代AD7606數(shù)據(jù)采集系統(tǒng)中應(yīng)用

    16位200kSPS的ADC替代AD7606數(shù)據(jù)采集系統(tǒng)中應(yīng)用
    的頭像 發(fā)表于 06-03 09:42 ?2112次閱讀
    16位<b class='flag-5'>200kSPS</b>的ADC替代<b class='flag-5'>AD7606</b>在<b class='flag-5'>數(shù)據(jù)采集</b>系統(tǒng)中應(yīng)用

    AD7606/AD7606 - 6/AD7606 - 4:高性能同步采樣模數(shù)數(shù)據(jù)采集系統(tǒng)解析

    公司的AD7606/AD7606 - 6/AD7606 - 4,這是一系列16位、8/6/4通道同步
    的頭像 發(fā)表于 03-30 10:05 ?498次閱讀

    AD7606/AD7606 - 6/AD7606 - 4:高性能同步采樣模數(shù)數(shù)據(jù)采集系統(tǒng)解析

    /AD7606 - 4系列產(chǎn)品,作為16位、8/6/4通道同步采樣模數(shù)數(shù)據(jù)采集系統(tǒng),為工程師們提
    的頭像 發(fā)表于 03-30 10:05 ?391次閱讀

    AD7606/AD7606 - 6/AD7606 - 4數(shù)據(jù)采集系統(tǒng)詳解

    Devices推出的16位同時(shí)采樣模擬 - 數(shù)字數(shù)據(jù)采集系統(tǒng),分別具有8、6和4個(gè)通道。該系列產(chǎn)品集成了多種功能模塊,如模擬輸入鉗位保護(hù)、二階抗混疊濾波器、跟蹤保持放大器、16位電荷
    的頭像 發(fā)表于 03-31 10:25 ?531次閱讀
    板桥市| 贺兰县| 利川市| 天峨县| 镇平县| 菏泽市| 金川县| 青龙| 松江区| 喀喇沁旗| 巧家县| 兴义市| 安阳县| 射阳县| 宜阳县| 呼和浩特市| 广德县| 仪征市| 安新县| 彭州市| 广河县| 枣强县| 稻城县| 花莲市| 上虞市| 松滋市| 洪洞县| 定远县| 砚山县| 金山区| 瑞丽市| 阜南县| 宁乡县| 沈丘县| 增城市| 望城县| 德兴市| 绥芬河市| 开平市| 苍山县| 湄潭县|