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

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

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

AD9833函數(shù)發(fā)生器的驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

CHANBAEK ? 來(lái)源:木南創(chuàng)智 ? 作者:尹家軍 ? 2022-12-09 15:50 ? 次閱讀

很多時(shí)候我們需要輸出某種函數(shù)信號(hào),如方波、三角波、正弦波等,但想要獲得這樣的函數(shù)信號(hào),不論是硬件電路還是軟件實(shí)現(xiàn),卻并不是一件簡(jiǎn)單的事情。不過(guò)AD9833這類函數(shù)生成芯片可以簡(jiǎn)化這方面的操作,這一節(jié)我們就來(lái)設(shè)計(jì)并實(shí)現(xiàn)AD9833的驅(qū)動(dòng)。

1 、功能概述

各種類型的檢測(cè)、信號(hào)激勵(lì)和時(shí)域反射(TDR)應(yīng)用都需要波形發(fā)生器。而AD9833就是一款低功耗、可編程波形發(fā)生器,能夠產(chǎn)生正弦波、三角波和方波輸出。

1.1 、硬件配置及功能描述

AD9833無(wú)需額外的外部元件就能夠產(chǎn)生正弦波、三角波和方波輸出。輸出頻率和相位可通過(guò)軟件進(jìn)行編程,調(diào)整簡(jiǎn)單。AD9833通過(guò)一個(gè)三線式串行接口寫入數(shù)據(jù)。該串行接口能夠以最高40 MHz的時(shí)鐘速率工作,并且與DSP微控制器標(biāo)準(zhǔn)兼容。該器件采用2.3 V至5.5 V電源供電。

1.2 、內(nèi)部寄存器

AD9833包含一個(gè)16位控制寄存器,讓用戶可以配置AD9833的操作。mode位之外的所有控制位均在MCLK的內(nèi)部下降沿采樣。

控制寄存器各位的含義如下:

AD9833包含兩個(gè)頻率寄存器和兩個(gè)相位寄存器,頻率寄存器為28位:時(shí)鐘速率為25 MHz時(shí),可以實(shí)現(xiàn)0.1 Hz的分辨率;而時(shí)鐘速率為1 MHz時(shí),則可以實(shí)現(xiàn)0.004 Hz的分辨率。

每次寫數(shù)據(jù)時(shí),都是從寫控制寄存器器開(kāi)始,每次寫的16為數(shù)據(jù)的高兩位用以決定所寫的寄存器。

如上圖所示,寫不同寄存器時(shí)高兩位需根據(jù)寄存器的不同設(shè)定不同的值。

2 、驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

我們已經(jīng)了解了AD9833的基本情況。接下來(lái)我們就據(jù)此實(shí)現(xiàn)AD9833波形發(fā)生器驅(qū)動(dòng)的設(shè)計(jì)及實(shí)現(xiàn)。

2.1 、對(duì)象定義

AD9833波形發(fā)生器的驅(qū)動(dòng)依然采用基于對(duì)象的操作,所以我們需要先得到AD9833波形發(fā)生器的對(duì)象。

2.1.1 、抽象對(duì)象類型

一個(gè)對(duì)象最起碼包含屬性和操作兩方面內(nèi)容,我們先來(lái)分析一下AD9833波形發(fā)生器對(duì)象需要包含哪些屬性和操作。

對(duì)于AD9833波形發(fā)生器來(lái)說(shuō),控制寄存器的狀態(tài)決定了下一步的操作,所以我們將控制寄存器的狀態(tài)抽象為對(duì)象的屬性,以便隨時(shí)掌握操作的目標(biāo)。此外,作為函數(shù)發(fā)生器,輸出的信號(hào)具有周期性,在輸出頻率固定的情況下,計(jì)算有一個(gè)常數(shù),我們將其作為屬性已確認(rèn)輸出型號(hào)的頻率。

進(jìn)而我們考慮AD9833波形發(fā)生器對(duì)象的操作。首先我們要操作AD9833波形發(fā)生器則需要向其傳送數(shù)據(jù),所以我們將向AD9833波形發(fā)生器寫數(shù)據(jù)作為對(duì)象的一個(gè)操作。AD9833波形發(fā)生器采用SPI通訊接口,有時(shí)需要在軟件中對(duì)片選信號(hào)進(jìn)行操作,所以我們將片選型號(hào)的操作作為對(duì)象的另一個(gè)操作。在一些情況下,有些針對(duì)對(duì)象的活動(dòng)需要延時(shí)進(jìn)行,而在不同的平臺(tái)中采取的延時(shí)方式不盡相同,為了操作方便我們將延時(shí)操作作為對(duì)象的一個(gè)操作。

據(jù)以上的分析我們可以抽象AD9833波形發(fā)生器的對(duì)象類型如下:

1 /* 定義AD9833對(duì)象類型 */
2 typedef struct Ad9833Object{
3        uint16_t ctlRegister;                //控制寄存器
4        float freqConstant;                          //頻率計(jì)算常數(shù)
5        void (*WriteData)(uint8_t *tData,uint16_t tSize);        //向DAC發(fā)送數(shù)據(jù)        void (*ChipSelcet)(AD9833CSType en);     //片選信號(hào)
7        void (*Delayms)(volatile uint32_t nTime);       //ms延時(shí)操作指針
8 }Ad9833ObjectType;

2.1.2 、對(duì)象初始化

我們雖然得到了AD9833的對(duì)象,但對(duì)象不能直接使用,我們需要對(duì)其進(jìn)行初始化方能使用。所以接下來(lái)我們考慮AD9833波形發(fā)生器對(duì)象的初始化函數(shù)。

初始化函數(shù)至少包含有2方面內(nèi)容:一是為對(duì)象變量賦必要的初值;二是檢查這些初值是否是有效的。特別是一些操作指針錯(cuò)誤的話可能產(chǎn)生嚴(yán)重的后果。基于這一原則,我們?cè)O(shè)計(jì)AD9833波形發(fā)生器的對(duì)象初始化函數(shù)如下:

1 /* 初始化AD9833對(duì)象 */
 2 void AD9833Initialization(Ad9833ObjectType *dev,
 3                                            float mclk,
 4                                            AD9833WriteData write,
 5                                            AD9833ChipSelcet cs,
 6                                            AD9833Delayms delayms)
 7 {
 8        if((dev==NULL)||(write==NULL)||(delayms==NULL))
 9        {
10               return;
11        }
12       
13        dev->ctlRegister=0x0000;
14       
15        if(mclk>0)
16        {
17               dev->freqConstant=268.435456/mclk;
18        }
19        else
20        {
21               dev->freqConstant=10.73741824; //默認(rèn)是25M
22        }
23  
24        dev->WriteData=write;
25        dev->Delayms=delayms;
26       
27        if(cs!=NULL)
28        {
29               dev->ChipSelcet=cs;
30        }
31        else
32        {
33               dev->ChipSelcet=DefaultChipSelcet;
34        }
35 }

2.2 、對(duì)象操作

我們已知AD9833波形發(fā)生器包含3類寄存器:控制寄存器、頻率寄存器和相位寄存器。接下來(lái)我們就實(shí)現(xiàn)對(duì)這三個(gè)寄存器的操作。

2.2.1 、操作控制寄存器

AD9833波形發(fā)生器有一個(gè)16位的控制寄存用于配置各種操作。其中DB13(B28)、DB12(HLB)、DB11(FSELECT)、DB10(PSELECT)、DB8(RESET)、DB7(SLEEP1)、DB6(SLEEP12)、DB5(OPBITEN)、DB3(DIV2)、DB1(MODE)等位是可以操作的。與頻率寄存器和相位寄存器相關(guān)的配置我們?cè)诤罄m(xù)說(shuō)明,這里先看看復(fù)位、休眠及輸出模式的配置。

AD9833上電時(shí),器件應(yīng)復(fù)位。要使AD9833復(fù)位, 應(yīng)將DB8(RESET)位置1。要使器件退出復(fù)位,應(yīng)將該位清0。在reset 置0后的8個(gè)MCLK周期內(nèi),DAC輸出端會(huì)出現(xiàn)信號(hào)。復(fù)位功能可使相應(yīng)的內(nèi)部寄存器復(fù)位至0,以提供中間電平的模擬輸出。復(fù)位操作不會(huì)使相位、頻率或控制寄存器復(fù)位。

1 /* 復(fù)位AD9833對(duì)象 */
 2 void ResetAD9833Object(Ad9833ObjectType *dev)
 3 {
 4        uint16_t regValue=dev->ctlRegister;
 5       
 6        regValue|=AD9833_CTRLRESET;
 7        SendToAD9833(dev,regValue);
 8       
 9        dev->Delayms(1);
10       
11        regValue&=(~AD9833_CTRLRESET);
12        SendToAD9833(dev,regValue);
13       
14        dev->ctlRegister=regValue;
15 }

SLEEP功能可關(guān)斷AD9833中不使用的部分,以將功耗降至最低??申P(guān)斷的芯片部分是內(nèi)部時(shí)鐘和DAC。休眠功能需要操作DB7(SLEEP1)和DB6(SLEEP12)位。具體配置如下:

1 /* 設(shè)置AD9833休眠狀態(tài) */
 2 void SetAD9833SleepMode(Ad9833ObjectType *dev,Ad9833SleepMode mode)
 3 {
 4        uint16_t regValue=dev->ctlRegister;
 5  
 6        regValue&=(~(AD9833_CTRLSLEEP1|AD9833_CTRLSLEEP12));
 7       
 8        switch(mode)
 9        {
10               case DACTurnOff:
11               {
12                      regValue|=AD9833_CTRLSLEEP12;
13                      break;
14               }
15               case MCLKTurnOff:
16               {
17                      regValue|=AD9833_CTRLSLEEP1;
18                      break;
19               }
20               case DACMCLKTurnOff:
21               {
22                      regValue|=(AD9833_CTRLSLEEP1|AD9833_CTRLSLEEP12);
23                      break;
24               }
25               default:
26               {
27                      break;
28               }
29        }
30        SendToAD9833(dev,regValue);
31       
32        dev->ctlRegister=regValue;
33 }

AD9833可從芯片提供各種輸出,所有這些輸出均通過(guò)VOUT引腳提供。輸出選項(xiàng)包括DAC數(shù)據(jù)的MSB、正弦波 輸出或三角波輸出??刂萍拇嫫鞯腄B5(OPBITEN)、DB3(DIV2)和DB1(MODE)決定 AD9833將提供的輸出。具體如下:

1 /* 設(shè)置AD9833的輸出模式 */
 2 void SetAD9833OutputMode(Ad9833ObjectType *dev,Ad9833OutMode mode)
 3 {
 4        uint16_t regValue=dev->ctlRegister;
 5       
 6        regValue&=(~(AD9833_CTRLOPBITEN|AD9833_CTRLDIV2|AD9833_CTRLMODE));
 7       
 8        switch(mode)
 9        {
10               case triangular:
11               {
12                      regValue|=AD9833_CTRLMODE;
13                      break;
14               }
15               case square_msb_2:
16               {
17                      regValue|=AD9833_CTRLOPBITEN;
18                      break;
19               }
20               case square_msb:
21               {
22                      regValue|=(AD9833_CTRLOPBITEN|AD9833_CTRLDIV2);
23                      break;
24               }
25               default:
26               {
27                      break;
28               }
29        }
30  
31        SendToAD9833(dev,regValue);
32       
33        dev->ctlRegister=regValue;
34 }

2.2.2 、操作頻率寄存器

寫頻率寄存器時(shí),Bit D15和Bit D14設(shè)置為01或10??刂萍拇鍰B13(B28)和DB12(HLB)位決定操作的頻率寄存器。如果希望更改某個(gè)頻率寄存器的全部?jī)?nèi)容,則必須向 同一地址執(zhí)行兩次連續(xù)寫入,因?yàn)轭l率寄存器是28位寬。 第一次寫入包含14個(gè)LSB,第二次寫入則包含14個(gè)MSB。 對(duì)于此工作模式,B28(D13)控制位應(yīng)置1。在某些應(yīng)用中,用戶無(wú)需更新頻率寄存器的全部28個(gè)位。 在粗調(diào)情況下,只需更新14個(gè)MSB,而在精調(diào)情況下,則只需更新14個(gè)LSB。通過(guò)將B28 (D13)控制位清0時(shí),28位頻率寄存器用作兩個(gè)14位寄存器,其中一個(gè)包含14個(gè)MSB,另一個(gè)則包含14個(gè)LSB。這意味著,可單獨(dú)更新頻率字的 14個(gè)MSB而不影響14個(gè)LSB,反之亦然。控制寄存器中的 Bit HLB (D12)確定要更新的具體14個(gè)位。數(shù)據(jù)結(jié)構(gòu)如下:

1 /* 設(shè)置頻率寄存器的值 */
 2 void SetAD9833FreqRegister(Ad9833ObjectType *dev,WriteAd9833FreqReg reg,uint32_t freqValue)
 3 {
 4        uint16_t msbFreq,lsbFreq;
 5        uint32_t freqReg;
 6       
 7        freqReg =(uint32_t)(dev->freqConstant*freqValue);
 8        lsbFreq = (freqReg & 0x0003FFF);
 9        msbFreq = ((freqReg & 0xFFFC000) >> 14);
10       
11        ConfigFreqRegisterStyle(dev,reg);
12       
13        switch(reg)
14        {
15               case FREQ0_B28:
16               {
17                      lsbFreq |=FREQ0_Address;
18                      SendToAD9833(dev,lsbFreq);
19                      msbFreq |=FREQ0_Address;
20                      SendToAD9833(dev,msbFreq);
21                      break;
22               }
23               case FREQ0_B14_LSB:
24               {
25                      lsbFreq |=FREQ0_Address;
26                      SendToAD9833(dev,lsbFreq);
27                      break;
28               }
29               case FREQ0_B14_MSB:
30               {
31                      msbFreq |=FREQ0_Address;
32                      SendToAD9833(dev,msbFreq);
33                      break;
34               }
35               case FREQ1_B28:
36               {
37                      lsbFreq |=FREQ1_Address;
38                      SendToAD9833(dev,lsbFreq);
39                      msbFreq |=FREQ1_Address;
40                      SendToAD9833(dev,msbFreq);
41                      break;
42               }
43               case FREQ1_B14_LSB:
44               {
45                      lsbFreq |=FREQ1_Address;
46                      SendToAD9833(dev,lsbFreq);
47                      break;
48               }
49               case FREQ1_B14_MSB:
50               {
51                      msbFreq |=FREQ1_Address;
52                      SendToAD9833(dev,msbFreq);
53                      break;
54               }
55               default:
56               {
57                      break;
58               }
59        }
60 }

2.2.3 、操作相位寄存器

寫入相位寄存器時(shí),Bit D15和Bit D14設(shè)置為11。Bit D13確定將載入的相位寄存器。具體結(jié)構(gòu)如下:

1 /* 設(shè)置相位寄存器的值 */
 2 void SetAD9833PhaseRegister(Ad9833ObjectType *dev,Ad9833PhaseReg reg,float phaseValue)
 3 {
 4        uint16_t phaseReg=0;
 5        float phaseConstant=651.8986469;
 6       
 7        phaseReg=(uint16_t)(phaseValue*phaseConstant);
 8        phaseReg&=0x0FFF;
 9       
10        if(reg==PHASE0)
11        {
12               phaseReg|=PHASE0_Address;
13        }
14        else
15        {
16               phaseReg|=PHASE1_Address;
17        }
18       
19        SendToAD9833(dev,phaseReg);
20 }

3 、驅(qū)動(dòng)的使用

我們已經(jīng)設(shè)計(jì)并實(shí)現(xiàn)了AD9833波形發(fā)生器的驅(qū)動(dòng),接下來(lái)我們考慮如何使用這一驅(qū)動(dòng)程序?qū)崿F(xiàn)AD9833波形發(fā)生器的應(yīng)用。

3.1 、聲明并初始化對(duì)象

驅(qū)動(dòng)是基于對(duì)象的操作設(shè)計(jì)的,所以我們先要使用Ad9833ObjectType聲明對(duì)象變量。形如:

Ad9833ObjectType ad9833;

聲明了這個(gè)對(duì)象變量并不能用于操作AD9833波形發(fā)生器,我們還需要使用初始化函數(shù)對(duì)對(duì)象變量進(jìn)行初始化。初始換函數(shù)所需參數(shù)如下:

Ad9833ObjectType *dev,所要初始化的AD9833對(duì)象設(shè)備

float mclk,AD9833采用的數(shù)字時(shí)鐘,默認(rèn)為25M

AD9833WriteData write,寫AD9833對(duì)象函數(shù)

AD9833ChipSelcet cs,AD9833片選信號(hào)操作函數(shù)

AD9833Delayms delayms,操作ms延時(shí)函數(shù)

對(duì)于這些參數(shù),對(duì)象變量我們已經(jīng)定義了。AD9833采用的數(shù)字時(shí)鐘則根據(jù)我們的實(shí)際使用情況輸入。主要的是我們需要定義幾個(gè)函數(shù),并將函數(shù)指針作為參數(shù)。這幾個(gè)函數(shù)的類型如下:

1 /* 定義AD9833寫數(shù)據(jù)指針類型 */
2 typedef void (*AD9833WriteData)(uint8_t *tData,uint16_t tSize);
3 
4 /* 定義AD9833片選操作指針類型 */
5 typedef void (*AD9833ChipSelcet)(AD9833CSType en);
6 
7 /* 定義AD9833 ms延時(shí)操作指針類型 */
8 typedef void (*AD9833Delayms)(volatile uint32_t nTime);

對(duì)于這幾個(gè)函數(shù)我們根據(jù)樣式定義就可以了,具體的操作可能與使用的硬件平臺(tái)有關(guān)系。片選操作函數(shù)用于多設(shè)備需要軟件操作時(shí),如采用硬件片選可以傳入NULL即可。具體函數(shù)定義如下:

1 /*定義片選信號(hào)函數(shù)*/
 2 void AD9833CS(AD9833CSType en)
 3 {
 4        if(AD9833CS_ENABLE==en)
 5        {
 6               HAL_GPIO_WritePin(GPIOF, GPIO_PIN_4, GPIO_PIN_RESET);
 7        }
 8        else
 9        {
10               HAL_GPIO_WritePin(GPIOF, GPIO_PIN_4, GPIO_PIN_SET);
11        }
12 }
13  
14 /*定義發(fā)送數(shù)據(jù)函數(shù)*/
15 void AD9833TransmitData(uint8_t *wData,uint16_t wSize)
16 {
17        HAL_SPI_Transmit (&ad9833hspi, wData, wSize, 1000);
18 }

對(duì)于延時(shí)函數(shù)我們可以采用各種方法實(shí)現(xiàn)。我們采用的STM32平臺(tái)和HAL庫(kù)則可以直接使用HAL_Delay()函數(shù)。于是我們可以調(diào)用初始化函數(shù)如下:

AD9833Initialization(&ad9833,25.0,AD9833TransmitData,AD9833CS,HAL_Delay);

3.2 、基于對(duì)象進(jìn)行操作

接下來(lái)我們將操作對(duì)象生成我們想要的波形。如我們想要生成頻率為10MHz,相位為0的正弦波,編碼如下:

1 /* 生成波形 */
 2 void SignalGenerator(void)
 3 {
 4        SetAD9833FreqRegister(&ad9833,F(xiàn)REQ0_B28,10000000);
 5        SetAD9833PhaseRegister(&ad9833,PHASE0,0.0);
 6       
 7        SelectAD9833FregRegister(&ad9833,F(xiàn)REQ0);
 8        SelectAD9833PhaseRegister(&ad9833,PHASE0);
 9       
10        SetAD9833OutputMode(&ad9833,sinusoid);
11 }

在這段程序中我們使用的是頻率寄存器0和相位寄存器0,并且頻率寄存器采用的是修改28位的形式。對(duì)于其他的操作方式我們我們可以作相應(yīng)的更改。

4 、應(yīng)用總結(jié)

我們已經(jīng)實(shí)現(xiàn)AD9833波形發(fā)生器的驅(qū)動(dòng)及基于此驅(qū)動(dòng)的應(yīng)用。我們輸出正弦波,三角波及方波均得到了與我們預(yù)期一致的結(jié)果,說(shuō)明驅(qū)動(dòng)的設(shè)計(jì)是符合需求的。

控制寄存器的DB11(FSELECT)和DB10(PSELECT)位決定所使用的頻率寄存器和相位寄存器,默認(rèn)是FREQ0寄存器和PHASE0寄存器。若需要修改則可以調(diào)用SelectAD9833FregRegister和SelectAD9833PhaseRegister函數(shù)進(jìn)行配置。

在使用驅(qū)動(dòng)時(shí)需注意,采用SPI接口的器件需要考慮片選操作的問(wèn)題。如果片選信號(hào)是通過(guò)硬件電路來(lái)實(shí)現(xiàn)的,我們?cè)诔跏蓟瘯r(shí)給其傳遞NULL值。如果是軟件操作片選則傳遞我們編寫的片選操作函數(shù)。

完整的源代碼可在GitHub下載:https://github.com/foxclever/ExPeriphDriver

聲明:本文內(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)注

    31

    文章

    5268

    瀏覽量

    119643
  • AD9833
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    18428
  • 驅(qū)動(dòng)設(shè)計(jì)

    關(guān)注

    1

    文章

    109

    瀏覽量

    15248
  • 函數(shù)發(fā)生器

    關(guān)注

    0

    文章

    142

    瀏覽量

    19020
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DSP實(shí)驗(yàn)箱_嵌入式教學(xué)實(shí)驗(yàn)箱_操作教程:2-17 AD9833波形發(fā)生器實(shí)驗(yàn)

    :GPIO5[4]、GPIO5[6]和GPIO5[9]。 波形發(fā)生器 TL6748-PlusTEB實(shí)驗(yàn)箱采用板載波形信號(hào)發(fā)生器,波形信號(hào)發(fā)生器采用的芯片是AD9833
    發(fā)表于 02-21 14:28

    基于AD9833的信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)

    【作者】:張雅珍;魏榕山;【來(lái)源】:《中國(guó)儀器儀表》2010年03期【摘要】:采用DDS芯片AD9833為信號(hào)產(chǎn)生芯片,AVR單片機(jī)ATMega16L為控制,配合外圍I/O器件,設(shè)計(jì)了一種結(jié)構(gòu)簡(jiǎn)便
    發(fā)表于 04-24 08:59

    求助各位大神AD9833

    想在protues中仿真波形發(fā)生器,但是沒(méi)有AD9833的模型,請(qǐng)問(wèn)哪位大神有AD9833元件庫(kù)或者提供一下可代替芯片。
    發(fā)表于 04-29 09:15

    AD9833最小原理圖

    內(nèi)容是關(guān)于DDS信號(hào)發(fā)生器芯片AD9833的最小原理圖
    發(fā)表于 02-21 17:18

    使用51單片機(jī)驅(qū)動(dòng)AD9833模塊

    使用51驅(qū)動(dòng)AD9833模塊的使用關(guān)于AD9833相關(guān)參數(shù)程序流程代碼片上傳程序總結(jié)關(guān)于AD9833AD9833是一款低功耗、可編程波形發(fā)生器
    發(fā)表于 12-01 07:53

    基于AD9833的高精度可編程波形發(fā)生器系統(tǒng)設(shè)計(jì)

    基于AD9833的高精度可編程波形發(fā)生器系統(tǒng)設(shè)計(jì):介紹一種基于AD9833的高精度可編程波形發(fā)生器系統(tǒng)解決方案,該系統(tǒng)具有可編程設(shè)置、波形頻率和峰峰值等功能,從而解決DDS輸出波
    發(fā)表于 05-26 23:37 ?150次下載

    基于DDS芯片AD9833的音源發(fā)生器設(shè)計(jì)

    基于DDS芯片AD9833的音源發(fā)生器設(shè)計(jì) 在2008年浙江省大學(xué)生電子設(shè)計(jì)競(jìng)賽中,有一個(gè)題目是“音樂(lè)演奏設(shè)計(jì)”,要求用12個(gè)鍵盤演奏音樂(lè),其中有一個(gè)關(guān)于
    發(fā)表于 10-26 14:19 ?2474次閱讀
    基于DDS芯片<b class='flag-5'>AD9833</b>的音源<b class='flag-5'>發(fā)生器</b>設(shè)計(jì)

    基于DDS芯片AD9833的音源發(fā)生器設(shè)計(jì)

    基于DDS芯片AD9833的音源發(fā)生器設(shè)計(jì)  在 2008年浙江省大學(xué)生電子設(shè)計(jì)競(jìng)賽中,有一個(gè)題目是“音樂(lè)演奏設(shè)計(jì)”,要求用12個(gè)鍵盤演奏音樂(lè),其中有一個(gè)關(guān)于音階的技術(shù)指標(biāo)
    發(fā)表于 11-03 09:01 ?1998次閱讀
    基于DDS芯片<b class='flag-5'>AD9833</b>的音源<b class='flag-5'>發(fā)生器</b>設(shè)計(jì)

    AD9833型高精度可編程波形發(fā)生器設(shè)計(jì)方案

    AD9833型高精度可編程波形發(fā)生器設(shè)計(jì)方案 AD9833是ADI公司生產(chǎn)的一款低功耗,可編程波形發(fā)生器,能夠產(chǎn)生正弦波、三角波、方波輸出。波形發(fā)
    發(fā)表于 02-26 14:37 ?6240次閱讀
    <b class='flag-5'>AD9833</b>型高精度可編程波形<b class='flag-5'>發(fā)生器</b>設(shè)計(jì)方案

    AD9833型高精度可編程波形發(fā)生器及其應(yīng)用

    AD9833型高精度可編程波形發(fā)生器及其應(yīng)用。
    發(fā)表于 01-22 14:42 ?0次下載

    基于AD9833的信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)

    自己動(dòng)手設(shè)計(jì)信號(hào)發(fā)生器,AD9833能很好的輸出各種波形。
    發(fā)表于 02-29 15:08 ?0次下載

    AD9833低功率可編程波形發(fā)生器的詳細(xì)資料免費(fèi)下載

    AD9833是一種低功率可編程波形發(fā)生器,能夠產(chǎn)生正弦、三角形和方波輸出。在各種類型的傳感、致動(dòng)和時(shí)域反射測(cè)量應(yīng)用中需要波形生成。輸出頻率和相位是軟件可編程的,允許容易調(diào)諧。不需要外部組件。頻率
    發(fā)表于 06-19 08:00 ?66次下載
    <b class='flag-5'>AD9833</b>低功率可編程波形<b class='flag-5'>發(fā)生器</b>的詳細(xì)資料免費(fèi)下載

    51驅(qū)動(dòng)AD9833

    使用51驅(qū)動(dòng)AD9833模塊的使用關(guān)于AD9833相關(guān)參數(shù)程序流程代碼片上傳程序總結(jié)關(guān)于AD9833AD9833是一款低功耗、可編程波形發(fā)生器
    發(fā)表于 11-23 17:06 ?59次下載
    51<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>AD9833</b>

    如何使用Arduino和AD9833構(gòu)建信號(hào)發(fā)生器

    在本文中,我們將使用 Arduino 和 AD9833 DDS 函數(shù)發(fā)生器模塊構(gòu)建一個(gè)簡(jiǎn)單的信號(hào)發(fā)生器,它可以在輸出端產(chǎn)生最大頻率為 12 MHz 的正弦波、方波和三角波。最后,我們將
    發(fā)表于 08-04 16:55 ?7329次閱讀
    如何使用Arduino和<b class='flag-5'>AD9833</b>構(gòu)建信號(hào)<b class='flag-5'>發(fā)生器</b>

    基于AD9833的DDS單通道三信號(hào)發(fā)生器

    電子發(fā)燒友網(wǎng)站提供《基于AD9833的DDS單通道三信號(hào)發(fā)生器.zip》資料免費(fèi)下載
    發(fā)表于 08-09 09:17 ?15次下載
    基于<b class='flag-5'>AD9833</b>的DDS單通道三信號(hào)<b class='flag-5'>發(fā)生器</b>