Страница 1 из 1

WinAVR + AD9851

Добавлено: Ср июл 10, 2013 12:38:10
geniusbsd
Нет ли у кого библиотеки winavr для работы с AD9851

Re: WinAVR + AD9851

Добавлено: Ср июл 10, 2013 12:53:29
Gudd-Head
40 бит без библиотеки никак не заслать?

Re: WinAVR + AD9851

Добавлено: Ср июл 10, 2013 13:40:55
geniusbsd
Подскажите с примером. как проинициализировать AD9851 и как в нее послать данные частоты

Re: WinAVR + AD9851

Добавлено: Ср июл 10, 2013 13:48:13
Gudd-Head
Так а что ДШ говорит?

Re: WinAVR + AD9851

Добавлено: Ср июл 10, 2013 13:50:03
geniusbsd
проблемы с инглишем :(

Re: WinAVR + AD9851

Добавлено: Ср июл 10, 2013 14:00:09
geniusbsd
Вот пример, но он к arduino

Код: Выделить всё

#define DDS_CLOCK 180000000

byte LOAD = 8; 
byte CLOCK = 9; 
byte DATA = 10;
byte LED = 13;

void setup()
{
  pinMode (DATA, OUTPUT); // sets pin 10 as OUPUT
  pinMode (CLOCK, OUTPUT); // sets pin 9 as OUTPUT
  pinMode (LOAD, OUTPUT); // sets pin 8 as OUTPUT
  pinMode (LED, OUTPUT);
}

void loop()
{
  // Do a frequency sweep in Hz
  for(unsigned long freq = 10000000; freq < 10001000; freq++)
  {
    sendFrequency(freq);
    delay(2);
  }
}

void sendFrequency(unsigned long frequency)
{
  unsigned long tuning_word = (frequency * pow(2, 32)) / DDS_CLOCK;
  digitalWrite (LOAD, LOW); // take load pin low

  for(int i = 0; i < 32; i++)
  {
    if ((tuning_word & 1) == 1)
      outOne();
    else
      outZero();
    tuning_word = tuning_word >> 1;
  }
  byte_out(0x09);

  digitalWrite (LOAD, HIGH); // Take load pin high again
}

void byte_out(unsigned char byte)
{
  int i;

  for (i = 0; i < 8; i++)
  {
    if ((byte & 1) == 1)
      outOne();
    else
      outZero();
    byte = byte >> 1;
  }
}

void outOne()
{
  digitalWrite(CLOCK, LOW);
  digitalWrite(DATA, HIGH);
  digitalWrite(CLOCK, HIGH);
  digitalWrite(DATA, LOW);
}

void outZero()
{
  digitalWrite(CLOCK, LOW);
  digitalWrite(DATA, LOW);
  digitalWrite(CLOCK, HIGH);
}

Re: WinAVR + AD9851

Добавлено: Пт июл 12, 2013 08:23:34
geniusbsd
Все разбрался, сам ни чего сложного в єтом нет.
Остался маленький вопрос по схеме включения ножка reset AD9851 ghb последовательном программировании вист в воздухе или подключена к земле?

Re: WinAVR + AD9851

Добавлено: Пт июл 12, 2013 09:17:59
Gudd-Head
geniusbsd писал(а):ножка reset AD9851 ghb последовательном программировании вист в воздухе или подключена к земле?
В воздухе её оставлять нельзя, там обычный КМОП вход.

Re: WinAVR + AD9851

Добавлено: Пт июл 12, 2013 10:54:15
geniusbsd
Можно подключить к любому порту МК и подать на нее логический 0