久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 模擬技術 > 設計應用 > 米爾T153開發板AD7616高速ADC采集系統詳解

米爾T153開發板AD7616高速ADC采集系統詳解

—— 【干貨】
作者: 時間:2026-02-06 來源:EEPW 收藏

1.項目概述

1.1技術背景

MYD-YT153開發板搭載全志T153處理器,提供LocalBus(LBC)并行總線接口,適合連接高速外設。AD7616是ADI公司推出的16位高精度并行,具有16通道差分輸入,廣泛應用于工業數據采集、儀器儀表等領域。

1.2項目目標

●   驗證MYD-YT153 LocalBus與AD7616的硬件兼容性

●   提供完整的軟件驅動實現方案

●   評估系統在實際應用中的性能表現

1770360078354185.png

基于全志T153核心板及開發板

2.硬件平臺架構

2.1核心硬件組件

組件

規格

備注

主控板

MYD-YT153MX-512N512D

T153處理器,512MB RAM

模塊

AD7616 16位并行

16通道差分輸入

接口

J23 LocalBus接口

1對1連接

調試接口

Type-C轉USB

串口調試

網絡接口

RJ45

可選,與LBC沖突

1770360098459108.png

圖 MYD-YT153開發板和localbus接口

2.2硬件連接要點

●   引腳一一對應:AD7616模塊通過J23接口直連開發板

●   電源連接:需外接5V電源至模塊供電引腳

●   信號完整性:并行總線長度應盡量短,避免信號衰減

1770360114950980.png

圖 J23 localbus接口定義

image.png

圖 MYD-YT153接入AD7616模塊

2.3引腳沖突注意

T153處理器的LocalBus與RGMII2網絡接口存在引腳復用沖突:

●   必須選擇編譯支持LocalBus的鏡像(LVDS或DSI顯示配置)

●   同一時間只能使用一種功能

1770360176812142.png

圖 Localbus與RGMII2沖突

3.軟件環境配置

3.1鏡像選擇

根據存儲介質選擇相應鏡像:

存儲介質

顯示接口

鏡像文件

EMMC

MIPI-DSI

myd_yt153_emmc_dsi.img

EMMC

LVDS

myd_yt153_emmc_lvds.img

NAND

MIPI-DSI

myd_yt153_nand_dsi.img

NAND

LVDS

myd_yt153_nand_lvds.img

SD卡

MIPI-DSI

myd_yt153_sdcard_dsi.img

SD卡

LVDS

myd_yt153_sdcard_lvds.img

注:所有鏡像均支持LocalBus功能。

3.2驅動架構

// 驅動層次
應用層:platformallwinnerindustrylocalbuslbc_ad7616_testlbc_ad7616_test.c (用戶空間測試程序)
驅動層:bsp/drivers/lbc/sunxi_lbc_v2_drv.c(內核驅動)
硬件層:LocalBus控制器(T153內置)

4.AD7616工作模式解析

4.1測試代碼是否能正常工作

直接運行代碼,看下是什么現象

1770360208678013.png

圖 Lbc_ad7616_test程序運行結果

可以看到一共分三部分

模式設置,設置了SEL[0-2]以及CS0片選,做了寄存器映射。

寄存器設置,針對0x02,0x04…0x27先寫后度。

獲取結果,讀取每路通路結果,小數點后兩位。

4.2AD7616模塊分析

結合芯片手冊《ad7616.pdf》和軟件源碼 lbc_ad7616_test.c

1770360474884170.png

圖 程序運行流程圖

init_gpio 設置了GPIO_CH_SEL0 , GPIO_CH_SEL1,GPIO_CH_SEL2 都為0,結合手冊可以看到這是通路選擇管腳,當軟件模式時需要設置為0x000。

1770360493573918.png

圖 CHSEL寄存器

AD7616_Set_Range(Range_0_V) 里面設置RANGE_SEL0 和 RANGE_SEL1 為0,結合手冊,發現時設置的軟件模式.

1770360513829148.png

圖 RNGSEL模式寄存器

map_shared_reg_region 和 map_chip_region 都是為了讀寫寄存器做內存映射。

run_ad7616_test 測試代碼關鍵,它一共分兩部分,初始化寄存器和讀數據。

1770360528892158.png

圖 adc寫寄存器和獲取結果流程

通過查詢寄存器可以得到如下信息

adc_cmd_write_readback(ctx, i, 0x2, 0x60);

同樣方式,進行總結

寫入寄存器值

設置值說明

含義說明

0x2, 0x60

bursten=1

seqen=1

使能Burst   模式

使能Sequencer   模式

0x4, 0xaa

[7:6]V3A=0x10
  [5:4]V2A=0x10[3:2]V1A=0x10
  [1:0]V0A=0x10

V3A~V0A電壓范圍設置成+-5V

0x5, 0xaa

[7:6]V7A=0x10
  [5:4]V6A=0x10[3:2]V5A=0x10
  [1:0]V4A=0x10

V7A~V4A電壓范圍設置成+-5V

0x6, 0xaa

[7:6]V3B=0x10
  [5:4]V2B=0x10[3:2]V1B=0x10
  [1:0]V0B=0x10

V3B~V0B電壓范圍設置成+-5V

0x7, 0xaa

[7:6]V7A=0x10
  [5:4]V6A=0x10[3:2]V5A=0x10
  [1:0]V4A=0x10

V7B~V4B電壓范圍設置成+-5V

0x20, 0x00

[8]SSREN=0
  [7:4]BSEL=0
  [3:0]VSEL=0

表示在完成V0A/V0B通道對的轉換后,ADC 會繼續前進到序列堆棧的下一層。
 
 

0x21, 0x11

N/A


0x22, 0x22

N/A


0x23, 0x33

N/A


0x24, 0x44

N/A


0x25, 0x55

N/A


0x26, 0x66

N/A


0x27, (0x77 | 1   << 8)

N/A


總結一下就是設置burst模式和啟用Sequencer模式,±5V量程。

好了,接著看測試邏輯 發送一次 CMD_SET_CONVST_IO 后,開始讀取每個通道的值

這個邏輯就比較清晰了,16個通道輪詢方式讀取,然后判斷最高位是否是1還是0做區別,最后做一個5V量程轉換后輸出小數點后2位。

結合上面寄存器分析,量程處理代碼比較隨意,應該要把2.5V,5V,10V 用宏控制,并和量產轉換形成對于關系。

那么它的實際精度是多少,作為一個16bitADC,理論精度是?32768 ~ +32767

當 sample_range = 5(±5V)時:

滿量程:10 V

碼值范圍:65536 個碼

1 LSB = 10V / 65536 ≈ 0.0001526 V

也就是:

≈ 152.6 μV / LSB

那釋放一下它的精度,不在控制輸出,把%6.2f改成%f即可。

printf("tsa: %p ch: %2d, data:0x%04x, voltage: %fn", tsa, ch, data[ch], voltage_data);

接下來就涉及另一個問題,采樣率到底是多少,其實就統計一下每秒這個讀取測試次數就知曉

最后統計出來每秒15幀,那肯定不是真實水平,清空所有打印再試試

此時可以看到每秒有接近9000次,由于每次采樣通道16,9000x16 = 144,000 samples / second,相當于單通道 144kSPS水平。

5.總結

通過本次測試,得出以下結論:

1.精度驗證:AD7616在±5V量程下實際分辨率達到152.6 μV,滿足16位ADC標稱性能。

2.速率驗證:系統實際采樣率達到144 kSPS(單通道等效),雖未達到理論極限250 kSPS,但已滿足大多數應用需求。

3.優化效果:通過減少軟件開銷,性能提升顯著,證明系統瓶頸主要在軟件層面。

4.實用價值:MYD-YT153 + AD7616組合為嵌入式高速數據采集提供了經濟高效的解決方案,適合工業自動化、測試測量等應用。


關鍵詞: 米爾 高速ADC ADC

評論


相關推薦

技術專區

關閉