1AD7606/AD7616介紹
AD7606是ADI公司的16位、8通道同步采樣AD芯片,并行采樣率高達200KSPS(AD7616是16位、16通道、1MSPS)。在電力線路測量和保護系統(tǒng)中,需要對多相輸配電網(wǎng)絡(luò)的大量電流和電壓通道進行同步采樣,AD7606是目前電力系統(tǒng)中最常用的ADC采樣芯片之一。
AD7606片上集成模擬輸入箝位保護、二階抗混疊濾波器、跟蹤保持放大器、16位電荷再分配逐次逼近型ADC內(nèi)核、數(shù)字濾波器、2.5V基準電壓源及緩沖、高速串行和并行接口。AD7606采用5V單電源供電,不再需要正負雙電源,并支持±10V或±5V的雙極性信號輸入。所有通道均能以高達200KSPS的速率進行采樣,同時輸入端箝位保護電路可以承受最高達±16.5V的電壓。
目前AD7606已廣泛應(yīng)用于電力線路檢測和保護系統(tǒng)、多項電機控制、儀器儀表和控制系統(tǒng)、多軸定位系統(tǒng)核數(shù)據(jù)采集系統(tǒng)(DAS)。
圖 1
圖 2
圖 3
圖 4
2ZYNQ SoC在能源電力領(lǐng)域方案優(yōu)勢
(1)采用Xilinx Zynq-7000 SoC高性能低功耗處理器,集成PS端單核/雙核ARM Cortex-A9 + PL端Artix-7架構(gòu)可編程邏輯資源。
(2)可通過PL端Artix-7架構(gòu)可編程邏輯資源按需擴展外部功能接口,只要資源滿足,理論上無數(shù)量限制。典型應(yīng)用:CAN(4路)、千兆以太網(wǎng)(2路)、百兆以太網(wǎng)(4路)、UART(12路)、SPI(5路),特別是可通過外接多片AD芯片(AD7606/AD7616),實現(xiàn)16/32/64路AD同步采樣。
(3) OpenAMP框架可實現(xiàn)雙核ARM Cortex-A9非對稱使用方案,從而使雙核ARM實現(xiàn)分別跑兩個系統(tǒng):一個ARM Cortex-A9跑Linux,一個ARM Cortex-A9作為實時核跑RTOS(FreeRTOS)或者裸機。實時核與FPGA端進行低延時的高速數(shù)據(jù)交換與實時通訊控制,從而滿足低延時的實時任務(wù)要求。而跑Linux的 ARM核作為更上層應(yīng)用,處理更復(fù)雜的業(yè)務(wù)事務(wù)。
(4)外部可擴展LCD顯示與觸摸屏控制,分辨率支持2048*2048,支持1080P高清視頻播放與HDMI視頻輸出,滿足多種屏幕與人機交互的功能需求;
3AD7606在ZYNQ平臺的應(yīng)用
創(chuàng)龍科技在Zynq-7000、OMAP-L138/C6748/F2837x + Spartan-6等平臺均提供了AD7606的開發(fā)案例。
創(chuàng)龍科技基于Zynq-7010/7020處理器設(shè)計的工業(yè)評估板TLZ7x-EasyEVM-S,它由核心板+底板構(gòu)成。用戶使用核心板進行二次開發(fā)時,僅需專注上層運用,降低了開發(fā)難度和時間成本,可快速進行產(chǎn)品方案評估與技術(shù)預(yù)研。
圖 5TLZ7x-EasyEVM-S評估板(郵票孔)
圖 6TLZ7x-EasyEVM評估板
本文以Zynq-7000工業(yè)評估板TLZ7x-EasyEVM-S為例,講解ad7606_fft例程。
3.1功能說明
PL端采集AD7606的8通道AD信號,采樣率為200KSPS,并通過DMA IP核將數(shù)據(jù)緩存到PS端DDR中(每通道各采樣4096個點),再通過FFT IP核將數(shù)據(jù)進行FFT運算,然后將FFT運算結(jié)果保存到PS端DDR中,最后通過ILA顯示第一個通道的原始波形和FFT運算結(jié)果波形。
備注:由于本案例消耗邏輯資源較多,因此本案例不支持xc7z010,僅支持xc7z020。
3.2案例框圖
圖 7
點擊BLOCK DESIGN開發(fā)界面下的"Address Editor"選項,可查看IP核分配的地址,PS端可通過對應(yīng)地址對IP核進行控制。
圖8
3.3AD7606模塊
該模塊控制AD7606對8通道AD信號按200K采樣率進行采集,并將數(shù)據(jù)通過AXI4-Stream接口進行發(fā)送。
圖 9
進入BLOCK DESIGN開發(fā)界面,雙擊模塊框圖,可查看模塊的具體配置信息。采樣率為200KSPS,模塊工作時鐘為50MHz。
圖 10
3.4案例測試
將TLP2P-PinBoard轉(zhuǎn)接板接到評估板CON8接口,再將AD模塊TL7606P與轉(zhuǎn)接板連接。
圖 11
進入評估板文件系統(tǒng),執(zhí)行如下命令配置PS-PL電平轉(zhuǎn)換寄存器。
Target# devmem 0xf8000900 w 0xf
圖 12
使用下載器加載PL端程序以及和PL端程序同目錄下的.ltx文件。
圖 13
在ila_1的Trigger Setup窗口點擊按鈕,雙擊axi_dma_0_m_axis_mm2s_tvalid將其添加為觸發(fā)信號。
圖 14
將Value的值改成R,設(shè)置為上升沿觸發(fā)。
圖 15
右擊Channel_1_data[15:0],點擊“Waveform Style -> Analog”將通道1的原始信號設(shè)置為模擬波形。
圖 16
右擊Channel_1_data[15:0],點擊“Radix -> Signed Decimal”設(shè)置數(shù)據(jù)為有符號類型。
圖 17
參考上面的步驟,在ila_2將axi_dma_1_m_axis_mm2s_tvalid添加為觸發(fā)信號,設(shè)置為上升沿觸發(fā),將FFT IP核輸出數(shù)據(jù)的實部和虛部信號分別設(shè)置為模擬波形,并設(shè)數(shù)據(jù)為有符號類型。
圖 18
圖 19
使用信號發(fā)生源向TL7606P模塊的8個通道分別輸入信號,本案例測試的輸入信號是頻率為2KHz、峰峰值為3.3Vpp的正弦波。
將案例“sw\linux_system\image\”目錄下所有腳本文件拷貝至評估板文件系統(tǒng)。執(zhí)行如下命令使能axi_dma_0的S2MM通道,將數(shù)據(jù)采集到PS端DDR中。
Target# ./axi_dma_0_ad7606_to_ddr.sh
執(zhí)行如下命令使能axi_dma_1的S2MM通道(FFT轉(zhuǎn)換后數(shù)據(jù)保存到PS端DDR),等待FFT IP核工作。
Target# ./axi_dma_1_fft_to_ddr.sh
執(zhí)行如下命令使能axi_dma_0的MM2S通道,把原始數(shù)據(jù)從DDR送到FFT IP核。
Target# ./axi_dma_0_ddr_to_fft.sh
執(zhí)行如下命令使能axi_dma_1的MM2S通道,把FFT轉(zhuǎn)換后的數(shù)據(jù)從DDR送到ILA顯示。
Target# ./axi_dma_1_ddr_to_ila.sh
圖 20
axi_dma_0_ad7606_to_ddr.sh
配置axi_dma_0的S2MM通道,將數(shù)據(jù)傳輸?shù)紻DR。
圖 21
配置好DMA后,配置axi gpio輸出1,設(shè)置adc_enable為1,使能ADC轉(zhuǎn)換。需確保DMA已配置好,再使能ADC轉(zhuǎn)換并進行數(shù)據(jù)傳輸。
圖 22
axi_dma_0_ddr_to_fft.sh
配置axi_dma_0的MM2S通道,將DDR中的數(shù)據(jù)通過AXI4-Stream發(fā)送給FFT IP核。
圖 23
ila_1原始波形
輸入信號是頻率為2KHz、峰峰值為3.3Vpp(電壓幅值為1.65V)的正弦波。一共4096個采樣點,每個采樣點4個時鐘周期,即4096=16384/4。
圖 24
圖 25
波峰值為+10729,波谷值為-10794,峰峰值=(10729 + 10794)/(2^16)x10V≈3.2841V,采樣范圍為±5V。
圖 26波峰值
圖 27 波谷值
Ila_2FFT波形
Channel_1_fft_IM_Dout為虛部,Channel_1_fft_RE_Dout為實部。
圖 28
頻率計算
FFT變換點數(shù)N=4096,AD采樣率Fs為200KSPS。某點n所表示的頻率Fn=(n-1)*(Fs/N)(n>=1)。當n=1時,F(xiàn)n為0,由于第一點表示的是直流分量,因此頻率為0,幅值也為0,該正弦波無直流分量。
從下圖可知,在第164個周期(即第42個采樣點)處出現(xiàn)信號,則信號頻率Fn=(42-1)*(Fs/N)=41*200KHz/4096=2001.95Hz,與原始信號頻率2KHz基本一致。
圖 29
幅值(波峰值)計算
某個點的幅值A(chǔ)n=(根號(實部^2 + 虛部^2))*壓縮倍數(shù)/(N/2),則信號幅值A(chǔ)n=(根號(4448^2 + 3008^2))x4096/4096x2≈10739.23,信號電壓幅值=10739.23/(2^16/2)x5V≈1.64V,與原始信號電壓幅值1.65V基本一致。
查看原始數(shù)據(jù)
每個采樣點32bit(包括實部和虛部),每個通道的數(shù)據(jù)的地址依次遞增,從地址0x19000000開始。
Target#devmem 0x19000000 //查看V1通道原始數(shù)據(jù)
Target#devmem 0x19000004 //查看V2通道原始數(shù)據(jù)
Target#devmem 0x19000008 //查看V3通道原始數(shù)據(jù)
Target#devmem 0x1900000c //查看V4通道原始數(shù)據(jù)
Target#devmem 0x19000010 //查看V5通道原始數(shù)據(jù)
Target#devmem 0x19000014 //查看V6通道原始數(shù)據(jù)
Target#devmem 0x19000018 //查看V7通道原始數(shù)據(jù)
Target#devmem 0x1900001c //查看V8通道原始數(shù)據(jù)
圖 30查看V1通道原始數(shù)據(jù)
查看FFT數(shù)據(jù)
每個采樣點32bit(包括實部和虛部),每個通道的數(shù)據(jù)的地址依次遞增,從地址0x19100000開始。
Target#devmem 0x19100000 //查看V1通道FFT數(shù)據(jù)
Target#devmem 0x19100004 //查看V2通道FFT數(shù)據(jù)
Target#devmem 0x19100008 //查看V3通道FFT數(shù)據(jù)
Target#devmem 0x1910000c //查看V4通道FFT數(shù)據(jù)
Target#devmem 0x19100010 //查看V5通道FFT數(shù)據(jù)
Target#devmem 0x19100014 //查看V6通道FFT數(shù)據(jù)
Target#devmem 0x19100018 //查看V7通道FFT數(shù)據(jù)
Target#devmem 0x1910001c //查看V8通道FFT數(shù)據(jù)
圖 31查看V1通道FFT數(shù)據(jù)
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601231 -
ARM
+關(guān)注
關(guān)注
134文章
9027瀏覽量
366475 -
嵌入式
+關(guān)注
關(guān)注
5059文章
18973瀏覽量
301997 -
Zynq
+關(guān)注
關(guān)注
9文章
607瀏覽量
47101
發(fā)布評論請先 登錄
相關(guān)推薦
評論