【干貨】米爾T153開(kāi)發(fā)板AD7616高速ADC采集系統(tǒng)詳解
1. 項(xiàng)目概述
1.1 技術(shù)背景
米爾MYD-YT153開(kāi)發(fā)板搭載全志T153處理器,提供LocalBus(LBC)并行總線(xiàn)接口,適合連接高速外設(shè)。AD7616是ADI公司推出的16位高精度并行ADC,具有16通道差分輸入,廣泛應(yīng)用于工業(yè)數(shù)據(jù)采集、儀器儀表等領(lǐng)域。
1.2 項(xiàng)目目標(biāo)
· 驗(yàn)證米爾MYD-YT153 LocalBus與AD7616的硬件兼容性
· 提供完整的軟件驅(qū)動(dòng)實(shí)現(xiàn)方案
· 評(píng)估系統(tǒng)在實(shí)際應(yīng)用中的性能表現(xiàn)
圖:米爾基于全志T153核心板及開(kāi)發(fā)板
2. 硬件平臺(tái)架構(gòu)
2.1 核心硬件組件
圖:MYD-YT153開(kāi)發(fā)板和localbus接口
2.2 硬件連接要點(diǎn)
· 引腳一一對(duì)應(yīng):AD7616模塊通過(guò)J23接口直連開(kāi)發(fā)板
· 電源連接:需外接5V電源至模塊供電引腳
· 信號(hào)完整性:并行總線(xiàn)長(zhǎng)度應(yīng)盡量短,避免信號(hào)衰減
圖:J23 localbus接口定義
圖:MYD-YT153接入AD7616模塊
2.3 引腳沖突注意
T153處理器的LocalBus與RGMII2網(wǎng)絡(luò)接口存在引腳復(fù)用沖突:
· 必須選擇編譯支持LocalBus的鏡像(LVDS或DSI顯示配置)
· 同一時(shí)間只能使用一種功能
圖:Localbus與RGMII2沖突
3. 軟件環(huán)境配置
3.1 鏡像選擇
根據(jù)存儲(chǔ)介質(zhì)選擇相應(yīng)鏡像:
注:所有鏡像均支持LocalBus功能。
3.2 驅(qū)動(dòng)架構(gòu)
// 驅(qū)動(dòng)層次
應(yīng)用層:platform\allwinner\industry\localbus\lbc_ad7616_test\lbc_ad7616_test.c (用戶(hù)空間測(cè)試程序)
驅(qū)動(dòng)層:bsp/drivers/lbc/sunxi_lbc_v2_drv.c(內(nèi)核驅(qū)動(dòng))
硬件層:LocalBus控制器(T153內(nèi)置)
4. AD7616工作模式解析
4.1測(cè)試代碼是否能正常工作
直接運(yùn)行代碼,看下是什么現(xiàn)象
圖:Lbc_ad7616_test程序運(yùn)行結(jié)果
可以看到一共分三部分
模式設(shè)置,設(shè)置了SEL[0-2]以及CS0片選,做了寄存器映射。
寄存器設(shè)置,針對(duì)0x02,0x04…0x27先寫(xiě)后度。
獲取結(jié)果,讀取每路通路結(jié)果,小數(shù)點(diǎn)后兩位。
4.2AD7616模塊分析
結(jié)合芯片手冊(cè)《ad7616.pdf》和軟件源碼 lbc_ad7616_test.c
圖:程序運(yùn)行流程圖
init_gpio 設(shè)置了GPIO_CH_SEL0 , GPIO_CH_SEL1,GPIO_CH_SEL2 都為0,結(jié)合手冊(cè)可以看到這是通路選擇管腳,當(dāng)軟件模式時(shí)需要設(shè)置為0x000。
圖:CHSEL寄存器
AD7616_Set_Range(Range_0_V) 里面設(shè)置RANGE_SEL0 和 RANGE_SEL1 為0,結(jié)合手冊(cè),發(fā)現(xiàn)時(shí)設(shè)置的軟件模式.
圖:RNGSEL模式寄存器
map_shared_reg_region 和 map_chip_region 都是為了讀寫(xiě)寄存器做內(nèi)存映射。
run_ad7616_test 測(cè)試代碼關(guān)鍵,它一共分兩部分,初始化寄存器和讀數(shù)據(jù)。
圖:adc寫(xiě)寄存器和獲取結(jié)果流程
通過(guò)查詢(xún)寄存器可以得到如下信息
同樣方式,進(jìn)行總結(jié)
總結(jié)一下就是設(shè)置burst模式和啟用Sequencer模式,±5V量程。
好了,接著看測(cè)試邏輯 發(fā)送一次 CMD_SET_CONVST_IO 后,開(kāi)始讀取每個(gè)通道的值
這個(gè)邏輯就比較清晰了,16個(gè)通道輪詢(xún)方式讀取,然后判斷最高位是否是1還是0做區(qū)別,最后做一個(gè)5V量程轉(zhuǎn)換后輸出小數(shù)點(diǎn)后2位。
結(jié)合上面寄存器分析,量程處理代碼比較隨意,應(yīng)該要把2.5V,5V,10V 用宏控制,并和量產(chǎn)轉(zhuǎn)換形成對(duì)于關(guān)系。
那么它的實(shí)際精度是多少,作為一個(gè)16bitADC,理論精度是?32768 ~ +32767
當(dāng) sample_range = 5(±5V)時(shí):
滿(mǎn)量程:10 V
碼值范圍:65536 個(gè)碼
1 LSB = 10V / 65536 ≈ 0.0001526 V
也就是:
≈ 152.6 μV / LSB
那釋放一下它的精度,不在控制輸出,把%6.2f改成%f即可。
接下來(lái)就涉及另一個(gè)問(wèn)題,采樣率到底是多少,其實(shí)就統(tǒng)計(jì)一下每秒這個(gè)讀取測(cè)試次數(shù)就知曉
最后統(tǒng)計(jì)出來(lái)每秒15幀,那肯定不是真實(shí)水平,清空所有打印再試試
此時(shí)可以看到每秒有接近9000次,由于每次采樣通道16,9000x16 = 144,000 samples / second,相當(dāng)于單通道 144kSPS水平。
5. 總結(jié)
通過(guò)本次測(cè)試,得出以下結(jié)論:
1. 精度驗(yàn)證:AD7616在±5V量程下實(shí)際分辨率達(dá)到152.6 μV,滿(mǎn)足16位ADC標(biāo)稱(chēng)性能。
2. 速率驗(yàn)證:系統(tǒng)實(shí)際采樣率達(dá)到144 kSPS(單通道等效),雖未達(dá)到理論極限250 kSPS,但已滿(mǎn)足大多數(shù)應(yīng)用需求。
3. 優(yōu)化效果:通過(guò)減少軟件開(kāi)銷(xiāo),性能提升顯著,證明系統(tǒng)瓶頸主要在軟件層面。
4. 實(shí)用價(jià)值:MYD-YT153 + AD7616組合為嵌入式高速數(shù)據(jù)采集提供了經(jīng)濟(jì)高效的解決方案,適合工業(yè)自動(dòng)化、測(cè)試測(cè)量等應(yīng)用。





