Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Temel Elektrik/Elektronik => Konuyu başlatan: berkay_91 - 24 Eylül 2016, 15:37:34

Başlık: AD9833 hakkında
Gönderen: berkay_91 - 24 Eylül 2016, 15:37:34
mrb, Ali expressden aldığım AD9833 modülü ile kare dalga üretirken Op-amp bir anda aşırı ısınmaya başladı, testlere farklı frekans ve genliklerde sinüs ve üçgen dalgalar içinde devam ettim ve şu sonuca vardım sadece kare dalga üretirken devre sapıtıyor ve zaman zaman 500 mA e yakın akım çekiyor zaten kare dalga üretirken scope dada çok ripple gözüküyor, diğer sinyal şekilleri gayet temiz üretilebiliyor yaklaşık 130-150 mA akım çekiyor, devremde bir adet Atmega32A, TFT ekran(ILI9163 sürücülü), OP-AMP(AD812) beslemesini +- 15 volt veriyorum AD812 çift opamp barındırıyor ilkini follower olarak kullandım ikincisinide 10k pot ile inverting amplifier yaptım giriş direnci(Ri) olarak 1k kullandım. daha önce böyle bir sorunla karşılaşan oldu mu?

https://tr.aliexpress.com/item/1pcs-AD9833-0-MHz-to-12-5-MHz-Digital-DDS-Signal-Generator-Module-Programmable-Microprocessors-Triangle/32573830574.html?spm=2114.010208.3.1.mnlhjg&ws_ab_test=searchweb201556_0,searchweb201602_1_10065_10068_112_10069_110_111_418_10017_109_108_10060_10061_10062_10057_10056_10055_10037_10054_301_10033_10059_10032_10058_10073_10070_10052_10053_10050_10051,searchweb201603_6&btsid=f2c50140-219d-4b13-a7bd-3a99b4f09370

Başlık: Ynt: AD9833 hakkında
Gönderen: furkanyx - 27 Kasım 2016, 22:05:39
@berkay_91 hocam, AD5932 entegeresi ile uğraşacağım da programlanması hakkında bir kaç soru sorabilir miyim?
Başlık: Ynt: AD9833 hakkında
Gönderen: tekosis - 28 Kasım 2016, 01:52:04
beslemede ne kullanıyorsunuz? eğer adaptörle yapıyorsanız bir de batarya ile test edin ısınma olacak mı? beslemede tantal kondansatör kullanmanın da faydası var.
Başlık: Ynt: AD9833 hakkında
Gönderen: a.zorba - 28 Kasım 2016, 08:48:54
Ad9833 için kullandigin kodları paylasabirmisin.
Başlık: Ynt: AD9833 hakkında
Gönderen: trinity - 28 Kasım 2016, 09:11:44
Bu linkte bütün proje bilgileri ve kaynak kodları var, isteyen c kodlarını biraz değiştirip pic'e uyarlayabilir.

http://www.vwlowen.co.uk/arduino/AD9833-waveform-generator/AD9833-waveform-generator.htm (http://www.vwlowen.co.uk/arduino/AD9833-waveform-generator/AD9833-waveform-generator.htm)
Başlık: Ynt: AD9833 hakkında
Gönderen: berkay_91 - 30 Kasım 2016, 12:47:48
Merhaba eklediğim projeyi Atmel studio 6.0 derleyicisinde oluşturdum projede mikrodenetleyici olarak Atmega328 kullandım, programı 8 Mhz de kullanabilmek için Fuse bitlerini LOW VALUE:E2 HIGH VALUE:D9 olarak değiştirdim böylelikle dahili osilatörü 8 Mhz de aktive ettim, AD9833 0 ile 12.5 Mhz arasında  sinüs, üçgen ve kare dalga üreten bir chiptir. iyi çalışmalar...

http://s2.dosya.tc/server3/70c2xu/DDS_AD9833.rar.html
Başlık: Ynt: AD9833 hakkında
Gönderen: Zoroaster - 30 Kasım 2016, 12:50:50
1 Khzde ürettiği sinüs sinyalin scop görüntüsünü yayınlayabilir misiniz?
Başlık: Ynt: AD9833 hakkında
Gönderen: Hattusa - 30 Kasım 2016, 13:52:23
Alıntı yapılan: berkay_91 - 24 Eylül 2016, 15:37:34
mrb, Ali expressden aldığım AD9833 modülü ile kare dalga üretirken Op-amp bir anda aşırı ısınmaya başladı, testlere farklı frekans ve genliklerde sinüs ve üçgen dalgalar içinde devam ettim ve şu sonuca vardım sadece kare dalga üretirken devre sapıtıyor ve zaman zaman 500 mA e yakın akım çekiyor zaten kare dalga üretirken scope dada çok ripple gözüküyor, diğer sinyal şekilleri gayet temiz üretilebiliyor yaklaşık 130-150 mA akım çekiyor, devremde bir adet Atmega32A, TFT ekran(ILI9163 sürücülü), OP-AMP(AD812) beslemesini +- 15 volt veriyorum AD812 çift opamp barındırıyor ilkini follower olarak kullandım ikincisinide 10k pot ile inverting amplifier yaptım giriş direnci(Ri) olarak 1k kullandım. daha önce böyle bir sorunla karşılaşan oldu mu?

https://tr.aliexpress.com/item/1pcs-AD9833-0-MHz-to-12-5-MHz-Digital-DDS-Signal-Generator-Module-Programmable-Microprocessors-Triangle/32573830574.html?spm=2114.010208.3.1.mnlhjg&ws_ab_test=searchweb201556_0,searchweb201602_1_10065_10068_112_10069_110_111_418_10017_109_108_10060_10061_10062_10057_10056_10055_10037_10054_301_10033_10059_10032_10058_10073_10070_10052_10053_10050_10051,searchweb201603_6&btsid=f2c50140-219d-4b13-a7bd-3a99b4f09370




berkay usta siz en iyisi sorunuzu geri alın, baksanıza milletin daha büyük derdi varmış  :D  :D  :D
Başlık: Ynt: AD9833 hakkında
Gönderen: berkay_91 - 30 Kasım 2016, 18:03:14
olsun hocam benim gibi dertli insanları görmek mutluluk veriyor :)
Başlık: Ynt: AD9833 hakkında
Gönderen: a.zorba - 30 Kasım 2016, 19:01:43
Alıntı yapılan: Zoroaster - 30 Kasım 2016, 12:50:50
1 Khzde ürettiği sinüs sinyalin scop görüntüsünü yayınlayabilir misiniz?

(http://i.hizliresim.com/R1YJdR.jpg) (http://hizliresim.com/R1YJdR)

kullandıgım kodlar :

#include "stm32f10x_conf.h"
#include "math.h"
#define FSYNCHIGH GPIO_WriteBit(GPIOB,GPIO_Pin_7,Bit_SET); //RB7
#define FSYNCLOW     GPIO_WriteBit(GPIOB,GPIO_Pin_7,Bit_RESET);
#define SDATAHIGH     GPIO_WriteBit(GPIOB,GPIO_Pin_5,Bit_SET); //RB5
#define SDATALOW GPIO_WriteBit(GPIOB,GPIO_Pin_5,Bit_RESET);
#define SCLKHIGH GPIO_WriteBit(GPIOB,GPIO_Pin_6,Bit_SET); //RB6
#define SCLKLOW     GPIO_WriteBit(GPIOB,GPIO_Pin_6,Bit_RESET);
void set_freq(long frequency);
void AD9837Write(int dat);


long freq;

void set_freq(long frequency);
unsigned char flag_type = 0;


void Init_GPIO(void){
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

  FSYNCHIGH;
  SDATAHIGH;
  SCLKHIGH;
set_freq(1000);

}
void delay(__IO uint32_t num)
{
__IO uint32_t index = 0;

/* default system clock is 72MHz */
for(index = (720000 * num); index != 0; index--)
{
}
}

void delay_us(uint32_t us){
uint32_t temp;
temp = us * 6; // cho 24 MHZ
while(temp > 0)
{
temp --;
}
}

int main(void)
{
    Init_GPIO();

}

void set_freq(long frequency)
{
  //
  int MSB;
  int LSB;
  int phase = 0;

  long FREQ0_REG0;
  float AD9837Val = 0.00000000;

  AD9837Val = (((float)(frequency))/25000000);
  FREQ0_REG0 = AD9837Val*0x10000000;

  MSB = (int)((FREQ0_REG0 & 0xFFFC000)>>14); //14 bits
  LSB = (int)(FREQ0_REG0 & 0x3FFF);

  //Set control bits DB15 ande DB14 to 0 and 1, FREQ0 register write(D15, D14 = 01)
  LSB |= 0x4000; //0b 0100 0000 0000 0000
  MSB |= 0x4000; //0b 0100 0000 0000 0000

  phase &= 0xC000; //0b1100 0000 0000 0000 =>When writing to a phase register, Bit D15 and Bit D14 are set to 11.

  AD9837Write(0x2100);//0b 0010 0001 0000 0000 => Set D13(set frequency registers. B28 bit)and D8 (Reset=1)

  delay(100);

  AD9837Write(LSB);  //Write Freq lower 14 bits

  AD9837Write(MSB);  //Write Freq upper 14 bits

  AD9837Write(phase);  //mid-low
  delay(10);

AD9837Write(0x2000); //sin wave
  //AD9837Write(0x2020); //square
  //AD9837Write(0x2002); //triangle
}


void AD9837Write(int dat)
{
  int x;
  FSYNCLOW;  //Set FSYNC low
  for (x = 0; x < 16; x++)
  {
    if (dat & 0x8000)
    {
    SDATAHIGH;   //Set SDATA according to MSB in cmd
    }
    else
   {
    SDATALOW;
   }
    SCLKLOW;  //CLK transistion to latch the bit into the AD9835
    SCLKHIGH;
    dat <<= 1;  //Shift to next bit in cmd
  }
  FSYNCHIGH;  //Set FSYNC high
}
kullandıgım kodlar