一、AD9220模塊簡(jiǎn)介
AD9220為新代高性能、12位模數(shù)轉(zhuǎn)換器,采用單電源供電。具有真12位線性度和溫度漂移性能,以及11.5位或更佳的交流性能。
AD9220采用高速、低成本的單CMOS工藝及新穎的架構(gòu),分辨率和速度均達(dá)到現(xiàn)有混合單芯片方案的水平,而功耗與成本卻低得多。內(nèi)置片內(nèi)高性能、低噪聲采樣保持放大器,選用外部基準(zhǔn)電壓,以滿足應(yīng)用的直流精度與溫度漂移要求。器件采用多級(jí)差分流水線架構(gòu),內(nèi)置數(shù)字輸出糾錯(cuò)邏輯,在額定數(shù)據(jù)速率時(shí)可提供12位精度,并保證在整個(gè)工作溫度范圍內(nèi)無失碼。適用于IF下變頻的通訊系統(tǒng)。
特性參數(shù)
- 模塊供電:DC 5V
- 模塊電流:20mA(MAX)
- 通訊協(xié)議:數(shù)據(jù)并行
- 模塊控制信號(hào)電平:3.3V
- 模塊輸入電壓范圍:0~5V
- 輸入阻抗:1M歐
- ADC分辨率位數(shù):12位
- 采樣率:10MSPS
- 輸入通道數(shù):1通道
- 基準(zhǔn)電壓:2.5V,可焊接SOP8封裝外部輸入基準(zhǔn)
- 采樣模式:可配置采樣電壓范圍,最大0~5V
- 輸出模式:12位數(shù)據(jù)并行
模塊應(yīng)用
- 電力線監(jiān)控和保護(hù)、多相電機(jī)控制、儀表和控制、多軸定位、數(shù)據(jù)采集等系統(tǒng)
二、AD9220模塊接口說明

VINB:模擬輸入引腳(-),輸入差分信號(hào)。下面的焊盤是選擇單端輸入還是差分輸入,默認(rèn)單端輸入。
REF:外部基準(zhǔn)輸入。下面的焊盤是選擇外部基準(zhǔn)輸入和內(nèi)部基準(zhǔn)輸入,默認(rèn)內(nèi)部基準(zhǔn)輸入。
三、AD9220的通訊方式
AD9220采用同步并行接口通訊方式,通訊完全依賴“時(shí)鐘驅(qū)動(dòng)”,每一個(gè)時(shí)鐘周期完成:模擬采樣,內(nèi)部轉(zhuǎn)換,數(shù)據(jù)輸出。
時(shí)序工作流程:
- 時(shí)鐘上升沿觸發(fā)采樣,CLK上升沿 → 采樣模擬信號(hào)。
- 內(nèi)部延遲,ADC不是立即輸出結(jié)果,而是經(jīng)過幾個(gè)周期延遲再輸出。
- 數(shù)據(jù)輸出到并行總線。
下圖為時(shí)序時(shí)間和時(shí)序圖:
四、AD9220的輸入范圍與輸出數(shù)據(jù)格式
AD9220輸出12位數(shù)據(jù),D0到D11,D11為最高位,D0位最低位。AD9220支持單端輸入和差分輸入,模塊默認(rèn)使用單端信號(hào)輸入。
單端輸入范圍[Vref - Vref,Vref + Vref],以基準(zhǔn)電壓Vref為中點(diǎn),輸出二進(jìn)制格式如下:
| 輸入 | 輸出 |
|---|---|
| Vref - Vref | 0000 0000 0000 |
| Vref(中點(diǎn)) | 1000 0000 0000 |
| Vref + Vref | 1111 1111 1111 |
差分輸入范圍[-Vref,+Vref],0V為中點(diǎn),輸出二進(jìn)制格式如下:
| 輸入 | 輸出 |
|---|---|
| -Vre | 0000 0000 0000 |
| 0V(中點(diǎn)) | 1000 0000 0000 |
| +Vref | 1111 1111 1111 |
數(shù)據(jù)讀?。?br /> AD9220的數(shù)據(jù)不是連續(xù)流,而是每個(gè)時(shí)鐘周期更新一次,讀取數(shù)據(jù)需在CLK上升沿到Pipeline Delay延遲內(nèi)讀取。注意:并行數(shù)據(jù)讀取時(shí),12條數(shù)據(jù)線同時(shí)采樣,避免IO延遲不一致,布線長(zhǎng)度不等。
數(shù)據(jù)對(duì)齊:
由于有Pipeline 延遲,輸入信號(hào) ≠ 當(dāng)前輸出數(shù)據(jù),實(shí)際關(guān)系:當(dāng)前輸出 = N個(gè)周期前的輸入。
其中,轉(zhuǎn)換電壓的換算公式:Vol = (采樣值 / 4096)* Vref。
五、STM32F103驅(qū)動(dòng)AD9220
準(zhǔn)備工作
STM32F103ZET6開發(fā)板,AD9220高速AD數(shù)據(jù)采集模塊,導(dǎo)線若干。
引腳接線
| STM32F103ZET6 | AD9220 |
|---|---|
| PA4 | CLK |
| PC0 | D1 |
| PC1 | D2 |
| PC2 | D3 |
| PC3 | D4 |
| PC4 | D5 |
| PC5 | D6 |
| PC6 | D7 |
| PC7 | D8 |
| PC8 | D9 |
| PC9 | D10 |
| PC10 | D11 |
| PC11 | D12 |
| PC12 | D0 |

代碼示例
AD9220.c
#include "AD9220.H"
void AD9220_IO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure ;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC, ENABLE); //使能PB,PE端口時(shí)鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5| GPIO_Pin_6| GPIO_Pin_7| GPIO_Pin_8| GPIO_Pin_9| GPIO_Pin_10| GPIO_Pin_11| GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOC ,&GPIO_InitStructure) ;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA ,&GPIO_InitStructure);
}
uint16_t AD9220ReadData(void)
{
uint16_t data;
DAC902_CLK = 0;
data = GPIO_ReadInputData(GPIOC)&0X1FFF;
data = GPIO_ReadInputData(GPIOC)&0X1FFF;
data = GPIO_ReadInputData(GPIOC)&0X1FFF;
data = GPIO_ReadInputData(GPIOC)&0X1FFF;//增加延時(shí)
data = ((data< < 1)&0X1FFF)|(data > >12);//對(duì)管腳數(shù)據(jù)重新排序,詳細(xì)對(duì)應(yīng)關(guān)系查看AD9220.H中定義
DAC902_CLK = 1;
return (data&0X0FFF);
}
main.c
#include "sys.h"
#include "ad9220.h"
#include "delay.h"
#include "usart.h"
volatile uint16_t AD_Data = 0;
#define FIFOLEN 8
volatile uint16_t fifoPtr = 0;
int32_t int_sampleVol[8];
#define VREF_mV 2500
int main(void)
{
char showLcd[30];
AD9220_IO_Init();//AD9220初始化
SystemInit();
delay_init(); //延時(shí)初始化
usart_Init(115200); //串口初始化
delay_ms(100);
while(1)
{
AD_Data = AD9220ReadData(); //AD數(shù)據(jù)讀取
int_sampleVol[fifoPtr++] = ((int32_t)5000)*((float)((short)AD_Data)/4096); //單端
// int_sampleVol[fifoPtr++] = (int32_t)(((float)(AD_Data - 2048) / 2048.0f) * VREF_mV); //差分
fifoPtr %= FIFOLEN;
sprintf(showLcd, "AD9220 Vol = %04dmV", int_sampleVol[0]);
usart_SendString(showLcd);
usart_SendString("rn");
delay_ms(100);
}
}
效果展示
單端輸入
差分輸入,注意:要P4下面焊盤要短接右邊焊盤。
六、注意事項(xiàng)與常見問題
注意事項(xiàng)
(1) 模塊為低功耗模塊,供電電源不超過6V,信號(hào)輸入電壓不可超過5.5V。
(2) 由于模塊是高精度器件,為了避免不必要的干擾,建議使 用線性電源供電。
(3) 輸出信號(hào)線建議盡量短,模塊接口為SMA,建議使用同軸線SMA接口的線材。接觸不良或劣質(zhì)的線材可能導(dǎo)致信號(hào)衰減或者噪聲過大。
(4) 配送的代碼僅為配套主控板使用,不提供單片機(jī)教程,寶貝詳情展示以外的功能需要自行開發(fā)。
(5) 如需簡(jiǎn)單測(cè)試模塊功能,建議搭配本店控制板使用,正確接線后給控制板供電即可實(shí)現(xiàn)信號(hào)采集顯示。
常見問題
Q:AD9220配合本店主控板能到多少采樣率?
A:由于單片機(jī)的主頻和IO速度不夠,我們沒有做主控板的最高速度測(cè)試,如需達(dá)到10MSPS采樣率,一般需要用到FPGA等高速邏輯器件。
Q:我想將AD9220的12位分辨力用到1-3V的采集,需要怎么做?
A:根據(jù)原理圖,AD9220采集的電壓范圍是Vin=Vb±Ref,即是說需要將Vb=2V,Vref=1V即可。
Q:我用STC51單片機(jī)采集的數(shù)據(jù)怎么不對(duì),有較大跳動(dòng),是什么原因?
A:一般來說有兩種可能,一是信號(hào)本身抖動(dòng)就比較大,二是通訊電平不兼容,AD9220是3.3V通信電平,用5V-TTL的話會(huì)對(duì)模塊有干擾。
Q:使用AD9220和配套的主控板,AD9220使用5V供電,無法采集到 5V的電壓?
A:首先AD9220和主控板之間的電源是需要共地,否則AD9220無法接收和返回正常的信號(hào)。這樣就無法采集,其次是AD9220做了電源的反接保護(hù),需要采集到5V電壓建議供電5.3V左右。但是不可超過5.8V,這樣就可以采集到5V的電壓。
審核編輯 黃宇
-
數(shù)據(jù)采集
+關(guān)注
關(guān)注
42文章
8360瀏覽量
121305 -
STM32F103
+關(guān)注
關(guān)注
34文章
499瀏覽量
68268
發(fā)布評(píng)論請(qǐng)先 登錄
LTC1290:12位8通道采樣數(shù)據(jù)采集系統(tǒng)的卓越之選
高速同步數(shù)據(jù)采集卡:從原理到實(shí)踐的深度解析
高性能12位A/D轉(zhuǎn)換器AD9221/AD9223/AD9220詳解
杭晶HCI差分晶振在高速數(shù)據(jù)采集卡的應(yīng)用
基于STM32F103驅(qū)動(dòng)DAC1220 20位/16位DAC數(shù)模轉(zhuǎn)換模塊輸出可調(diào)±10V基準(zhǔn)和三角波信號(hào)
TMUXHS4612:高速差分信號(hào)處理的理想之選
單片機(jī)的差分信號(hào)到底是什么?
基于STM32F103驅(qū)動(dòng)ADS8688模塊 8通道SAR/ADC數(shù)據(jù)采集信號(hào)
差分信號(hào)轉(zhuǎn)換成單端信號(hào)需要哪些元件?
基于STM32F103驅(qū)動(dòng)SI5351 3通道時(shí)鐘信號(hào)發(fā)生器輸出不同頻率信號(hào)
在STM32F103c8上做DLQR最優(yōu)控制算法的C編程資料
STM32F103驅(qū)動(dòng)LD3320語音識(shí)別模塊
基于STM32F103驅(qū)動(dòng)AD9220高速AD數(shù)據(jù)采集模塊采樣單端/差分信號(hào)
評(píng)論