0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32和AD5791的轉(zhuǎn)換

jf_26147162 ? 來(lái)源:jf_26147162 ? 作者:jf_26147162 ? 2023-02-15 17:44 ? 次閱讀

現(xiàn)在很多智能測(cè)量?jī)x表要求具有超高精度的電壓信號(hào),同時(shí)要求高穩(wěn)定性、高線形度和低噪聲、低溫度漂移。這樣的模擬系統(tǒng)設(shè)計(jì)面臨復(fù)雜的工程技術(shù)挑戰(zhàn),常規(guī)的方法是采用多個(gè)較低分辨率的DAC和大量分立元件與支持IC整合在一起,同時(shí)伴隨著相當(dāng)大的開發(fā)風(fēng)險(xiǎn)和高代價(jià)的修改時(shí)間,才能優(yōu)化電路參數(shù)、減小誤差和設(shè)計(jì)出復(fù)雜的自動(dòng)校準(zhǔn)電路,這樣不僅增加了硬件設(shè)計(jì)的復(fù)雜性,通常達(dá)到的精度也不是很高。本系統(tǒng)設(shè)計(jì)的基于STM32微處理器AD5791的20位超高精度測(cè)量系統(tǒng)中,實(shí)現(xiàn)了單路超高精度可調(diào)電壓信號(hào)的輸出,輸出電壓信號(hào)的幅值可以通過(guò)軟件來(lái)設(shè)置。該系統(tǒng)可靠性高,不需要校準(zhǔn)電路。

STM32F2, STM32F4, STM32F7, STM32H7,STM32L0, STM32L1,ST,STM32F0,STM32F1,STM3,STM32F407IG,STM32F103ZET6單片機(jī)解密


AD5791是美國(guó)ADI公司推出的一款高性能的單路20位電壓輸出數(shù)模轉(zhuǎn)換器, 它是業(yè)界首款具有真正1 ppm(百萬(wàn)分之一)分辨率和精度的DAC器件 [1-2] 。雙極工作電壓高達(dá)33 V。同時(shí)AD5791具有1 ppm的分辨率和精度、低噪聲(l ppm以下)、快速刷新率(1 us)和非常低的輸出漂移(在l ppm以下)。該器件采用了多功能三線串行接口,并與SPI、QSPI TM 、microWIRE TM 和DSP接口標(biāo)準(zhǔn)兼容。該器件集成了一個(gè)上電復(fù)位電路,以確保DAC輸出能達(dá)到0V,并保持在已知輸出阻抗?fàn)顟B(tài),直到有效寫入為止。該器件還提供了一個(gè)輸出鉗位功能,這使得其輸出在一個(gè)限定的負(fù)載狀態(tài)。綜上知,采用該款芯片,減少了復(fù)雜校準(zhǔn)算法的必要性,能極大地簡(jiǎn)化設(shè)計(jì)任務(wù)、減少開發(fā)和維護(hù)成本,同時(shí)降低風(fēng)險(xiǎn)。國(guó)內(nèi)相關(guān)學(xué)者在精密電壓源和醫(yī)療儀器中也得到了應(yīng)用 [3-4] 。

本系統(tǒng)的 Cortex-M3處理器為意法半導(dǎo)體公司推出的32位RISC處理器 STM32F103VCT6,主頻最高可達(dá)72 MHz,應(yīng)用也比較廣泛 [5] 。該處理器具有256KB的程序存儲(chǔ)器,48 KB的RAM,同時(shí)它有8個(gè)定時(shí)器、5路串口、3路SPI、2路I2C,具有獨(dú)立看門狗和窗口看門狗,非常適合于與AD5791構(gòu)成高精度的測(cè)量系統(tǒng)。

1 硬件電路設(shè)計(jì)

數(shù)模轉(zhuǎn)換電路中采用了1片參考電壓基準(zhǔn)產(chǎn)生芯片REF02AZ、1片超高精度雙路軌至軌輸出運(yùn)算放大器AD8676、1片高精度單路軌至軌輸出運(yùn)算放大器AD8675和20位超高精度數(shù)模轉(zhuǎn)換芯片AD5791構(gòu)成。該電路性能穩(wěn)定,運(yùn)行效果非常好。下面對(duì)電路進(jìn)行詳細(xì)分析。

AD5791中,VDD為+15 V,VSS為-15 V。VREFPS和VREFPF用以提供AD5791的正參考電壓輸入,輸入范圍5V到VDD-2.5 V,本測(cè)試系統(tǒng)中使用了+5 V的參考電壓。VREFNS和VREFNF用以提供AD5791的負(fù)參考電壓輸入,輸入范圍VSS+2.5到0 V,本測(cè)試系統(tǒng)中使用了-5 V的參考電壓。AD5791的工作電壓為3.3 V。+5 V參考電壓由參考電壓產(chǎn)生芯片REF02AZ產(chǎn)生,負(fù)電壓是通過(guò)由OP177構(gòu)成的單位增益反向放大器來(lái)實(shí)現(xiàn)。

pYYBAGPsqWqAEONaAAA7dHap6GQ968.jpg

AD5791有7個(gè)用于與STM32處理器進(jìn)行通訊的引腳,下面逐一作詳細(xì)介紹:

RESET/:復(fù)位引腳,可以實(shí)現(xiàn)AD5791的復(fù)位;

CLR/:清零引腳,可以將AD5791內(nèi)部DAC寄存器的值恢復(fù)到用戶定義的值,并更新DAC的輸出;

LDAC/:用于更新AD5791內(nèi)部DAC寄存器的值,并更新DAC的輸出;

SDO:串行數(shù)據(jù)輸出引腳;

SDIN:串行數(shù)據(jù)輸入引腳;

SCLK:串行通訊時(shí)鐘信號(hào)輸入引腳,最高頻率可高達(dá)35 MHz;

SYNC/:串行輸入數(shù)據(jù)的幀同步信號(hào);

由于STM32處理器采用了I/O口模擬SPI通訊的方式,所以通訊控制引腳可以連接到空余的STM32處理器的任何一個(gè)I/O引腳上,只要做相應(yīng)配置就可以。其中,AD8675構(gòu)成電壓跟隨器,作為AD5791的輸出緩沖。硬件電路上模擬地和數(shù)字地分開,并在一點(diǎn)接地,同時(shí)各個(gè)

電源

都加有濾波電容,以消除干擾。

2 軟件設(shè)計(jì)

系統(tǒng)采用模擬SPI總線

通信

,軟件的關(guān)鍵是STM32處理器和 AD5791之間的時(shí)序匹配,輸出電壓值到AD5791的DAC寄存器的值的計(jì)算,下面分別進(jìn)行詳細(xì)介紹。

2.1 AD5791芯片配置

AD5791的配置,主要在于AD5791的控制寄存器的配置。為了使得AD5791和STM32處理器匹配使用,需要做如下配置,具體控制寄存器相關(guān)介紹和操作參見手冊(cè)。DBn(n=1…9)代表控制寄存器的第n位。

DB1 RBUF=1 內(nèi)部運(yùn)算放大器關(guān)閉

DB2 OPGND=0 將DAC輸出下拉到地的功能切換掉,使得DAC處于正常模式

DB3 DACTRI=0 使DAC處于正常操作模式

DB4 BIN/2sC=1 使用直接二進(jìn)制編碼,不使用二進(jìn)制補(bǔ)碼編碼的形式

DB5 SDODIS=0 SDO數(shù)據(jù)輸出使能

DB6-DB9 LIN_COMP=0 參考電壓輸入范圍選擇為10 V

按照上述的配置,將相應(yīng)配置字寫入到AD5791的控制寄存器內(nèi)部,AD5791就可以正常工作了。此處值得注意的是DB4位,一定要選擇好相應(yīng)的編碼形式,否則輸出電壓會(huì)和計(jì)算值不符合。

2.2 ST M 32接口配置

STM32處理器的SPI 發(fā)送和接收都采用的是I/O口模擬的方式,因此I/O的初始化比較簡(jiǎn)單,除了DAC1_SDO網(wǎng)絡(luò)標(biāo)號(hào)的引腳設(shè)置為輸入模式外,其他通訊用的引腳都設(shè)置為輸出模式。

poYBAGPsqWyAIAQ5AAFYZ5aVSoU039.jpg?x51947

2.3 數(shù)模轉(zhuǎn)換輸出

數(shù)模轉(zhuǎn)換輸出,主要涉及3個(gè)子程序,芯片上電初始化子程序,芯片控制寄存器初始化子程序和電壓輸出子程序3個(gè)部分。下面給出AD5791讀寫函數(shù)和測(cè)試的例子。

u32 AD5791_Read(void)//讀取的24bit的數(shù)據(jù)

{

unsigned int i,j;

u32 data,c;

data=0;

AD5791_sync_0();

AD5791_sclk_0();

for(i=0;i<24;i++)

{

j=3;

data=data<<1;

AD5791_sclk_1();

while(j--);

c=GET_AD5791_SO();

AD5791_sclk_0();

data=data|c;

}

AD5791_sclk_0();

AD5791_sync_1();

return(data);

}

void AD5791_Write(unsigned long OutData) //寫一

個(gè)24 bit的數(shù)值

{

unsigned char i;

unsigned long value;

value = OutData & 0x00ffffff; //取低24bit

value = value<<8; //左移8位,ok

AD5791_ldac_1();

AD5791_sclk_1();

AD5791_sync_1();

AD5791_sync_0();

for ( i = 0; i < 24; i ++ )

{

AD5791_sclk_1();

ad5791delay();

if((value & 0x80000000) == 0x80000000)

{

AD5791_sdin_1();

}

else

{

AD5791_

sdin_0();

}

ad5791delay();

AD5791_sclk_0();

ad5791delay();

value = value << 1;

}

AD5791_sync_1();

ad5791delay();

AD5791_ldac_0();

ad5791delay();

AD5791_ldac_1();

ad5791delay();

}

/*入口參數(shù):outvalue 輸出的電

壓的值*/

void test_ad5791(double outvalue)

{

double temp=0.0;

long temp1=0;

Ad5791_gpio_init(); //AD5791 I/O口初始化

Ad5791_clr_init();//AD5791 清零

Reset_ad5791(); //AD5791 復(fù)位

Write_ad5791_control_register();//寫AD5791的控

制寄存器

temp=((outvalue+5.0)*1048575.0)/10.0;//計(jì)

算DAC輸出值

temp1=(long)temp | 0x00100000;

Write_ad5791_dac_register(temp1);//寫AD5791的

dac寄存器,同時(shí)輸出相應(yīng)電壓

}

程序中對(duì)AD5791芯片進(jìn)行相應(yīng)初始化以及寫AD5791的相應(yīng)寄存器都采用I/O模擬相應(yīng)時(shí)序的方法。其中寫模式的時(shí)序如圖3所示。寫數(shù)據(jù)時(shí),注意先寫高位,再寫低位,必須嚴(yán)格按照時(shí)序來(lái)寫入。

本系統(tǒng)成功實(shí)現(xiàn)了基于STM32處理器和AD5791的20位高精度電壓輸出系統(tǒng),給出了全新實(shí)用的硬件和軟件設(shè)計(jì),適用于對(duì)輸出高精度模擬電壓有需要的智能儀表場(chǎng)合中。該系統(tǒng)精度高,漂移低,可靠性高,可以應(yīng)用于醫(yī)療儀器、測(cè)試測(cè)量儀表、工業(yè)控制以及高端科學(xué)和航空航天儀器中,具有很好的應(yīng)用前景。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19313

    瀏覽量

    230044
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10904

    瀏覽量

    356363
  • AD5791
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    12654
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    EVAL AD5791 輸出問(wèn)題

    利用FPGA后接AD5791,設(shè)定的參考電壓值為0~10V,但是AD5791上電后就有1.3V的輸出,且保持不變,F(xiàn)PGA代碼波形圖如下。請(qǐng)問(wèn)是什么地方有錯(cuò)誤需要修改。寄存器我只寫了控制寄存器和數(shù)據(jù)寄存器。
    發(fā)表于 12-10 15:26

    STM 32和AD 5791轉(zhuǎn)換

    微處理器和AD5791的20位超高精度測(cè)量系統(tǒng)中,實(shí)現(xiàn)了單路超高精度可調(diào)電壓信號(hào)的輸出,輸出電壓信號(hào)的幅值可以通過(guò)軟件來(lái)設(shè)置。該系統(tǒng)可靠性高,不需要校準(zhǔn)電路。STM32F2, STM32
    發(fā)表于 03-15 11:26

    ad5791沒有輸出?

    請(qǐng)問(wèn)大家,我用zynq和verilog驅(qū)動(dòng)ad5791,硬件上沒有問(wèn)題,但是Vout一直沒有輸出,這可能是因?yàn)槭裁磫?wèn)題呢? 附上我的時(shí)序圖,謝謝各位大佬!
    發(fā)表于 09-14 22:38

    AD5791工作時(shí)發(fā)熱的問(wèn)題怎么解決?

    關(guān)于AD5791工作時(shí)發(fā)熱的問(wèn)題 我在130mmX170mm的PCB板上用了8片AD5791,工作都很正常,但是連續(xù)工作1個(gè)小時(shí)左右的時(shí)間,PCB板的溫度達(dá)到了50度左右,這種現(xiàn)象是否屬于正常狀態(tài)。是否需要安裝散熱裝置?
    發(fā)表于 12-15 08:08

    如何判斷AD5791是否損壞?

    使用AD5791將單片機(jī)計(jì)算的數(shù)字信號(hào)轉(zhuǎn)模擬,模擬信號(hào)輸出電平范圍為0-10V,之前測(cè)到的輸出精度能夠到0.1mv(受測(cè)量?jī)x器精度所限),現(xiàn)在輸出的精度只能到幾個(gè)mv,而且輸出的模擬信號(hào)電平比之前大了2V,請(qǐng)問(wèn)這有可能是AD5791壞掉了嗎?應(yīng)該如何確定是否損壞呢?
    發(fā)表于 12-18 06:22

    AD5791,pdf,datasheet,1PPM DAC

    The AD5791 is a single 20-bit, unbuffered voltage-output DAC that operates from a bipolar supply
    發(fā)表于 03-16 19:24 ?33次下載

    AD5791應(yīng)用電路

    AD5791應(yīng)用電路 Figure 14 shows a typical
    發(fā)表于 03-17 00:04 ?1316次閱讀
    <b class='flag-5'>AD5791</b>應(yīng)用電路

    AD5791數(shù)據(jù)轉(zhuǎn)換器的優(yōu)勢(shì)及應(yīng)用

    AD5791代表著一種突破性的數(shù)據(jù)轉(zhuǎn)換器技術(shù),可為精密電子設(shè)備的系統(tǒng)架構(gòu)師和設(shè)計(jì)師提供無(wú)與倫比的優(yōu)勢(shì)。該器件具有名符其實(shí)的1ppm分辨率和精度。
    的頭像 發(fā)表于 07-17 06:02 ?3651次閱讀

    AD5791參考代碼

    AD5791參考代碼
    發(fā)表于 03-18 08:24 ?27次下載
    <b class='flag-5'>AD5791</b>參考代碼

    UG-185:AD5791評(píng)估板用戶指南

    UG-185:AD5791評(píng)估板用戶指南
    發(fā)表于 03-20 10:32 ?6次下載
    UG-185:<b class='flag-5'>AD5791</b>評(píng)估板用戶指南

    AD5791 ACE遙控器-線性分析示例

    AD5791 ACE遙控器-線性分析示例
    發(fā)表于 03-23 07:33 ?10次下載
    <b class='flag-5'>AD5791</b> ACE遙控器-線性分析示例

    AD5781/AD5791快速發(fā)射指南

    AD5781/AD5791快速發(fā)射指南
    發(fā)表于 05-14 17:45 ?17次下載
    AD5781/<b class='flag-5'>AD5791</b>快速發(fā)射指南

    EVAD5791 AD5791 評(píng)估板

    用戶輕松評(píng)估 AD5791 電壓輸出 20 位數(shù)模轉(zhuǎn)換器 (DAC) 的所有功能而設(shè)計(jì)??梢栽诎遢d連接器處操作 AD5791 的引腳,以進(jìn)行外部連接??梢酝ㄟ^(guò)兩種方式來(lái)控制該評(píng)估板:通過(guò)板載連接器 (J
    發(fā)表于 06-03 09:08 ?4次下載
    EVAD<b class='flag-5'>5791</b> <b class='flag-5'>AD5791</b> 評(píng)估板

    AD5791 IBIS型號(hào)

    AD5791 IBIS型號(hào)
    發(fā)表于 06-06 18:46 ?2次下載
    <b class='flag-5'>AD5791</b> IBIS型號(hào)

    AD5791評(píng)估軟件

    AD5791評(píng)估軟件
    發(fā)表于 06-07 14:16 ?8次下載
    <b class='flag-5'>AD5791</b>評(píng)估軟件