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





