реклама на сайте
подробности

 
 
> Проблемы с AD9912, AD9912 ГУН PLL
dxWAk
сообщение Feb 22 2011, 10:52
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 13-04-06
Пользователь №: 16 083




Здравствуйте.

У меня к вам очередной вопрос. В одном из изделий я применил микросхему AD9912, которую предполагал использовать как перестраиваемый генератор гармонического сигнала.

Микросхема питается от двух источников на +3,3 и +1,8 Вольта (используются ADP1707), задающий генератор выполнен на кварцевом резонаторе KX7-T-40 МГц (с эквивалентным последовательным сопротивлением не более 50 Ом), фильтр ФАПЧ (в соответствии с рисунком 46 оригинальной документации на данную м/с R1 - 1.3 кОм, C1 - 300 пФ, C2 - 15 пФ - делитель ФАПЧ настроен на 24).
Другие параметры, установленные в данную микросхему:
Выходная частота в 1/1000 от DAC Sample Clock;
HSL, CMOS Driver, Output Doubler - выкл;
VCO Range - High;
2xreference - выкл;
Charge pump current - 250 мкА;
DAC Full-scale current - default;

Что наблюдаю по выходу? - частота, приблизительно равная 670 кГц, т.е. частота системы ФАПЧ 670 МГц. Изменение тока помпы (на 125 или 350 мкА), делителя ФАПЧ и частоты внешнего кварцевого резонатора не приводит к изменению выходной частоты - все так же 670 кГц. (При изменении кода частоты в регистр FTW частота пропорционально меняется).

Складывается впечатление, что либо не работает "помпа", либо выключен фазо-частотный детектор. Однако, отдельного бита отключения ФЧД как в м/с AD9910 здесь нет (или я его не вижу), напряжение на выводе 31 (фильтр ФАПЧ) около 750 мВ. ГУН (VCO) запускается на собственной частоте и не регулируется.
Не подскажете в чем может быть причина, почему не могу перестроить ГУН?
Заранее благодарен за ответ.

При записи в регистры DDS обратно считвыаются те же самые значения. Ниже приведен листинг программы.

Код
Init_DDS(); //Инициализация DDS
  
  WriteReg(0x0010,0x10); //Отключение ФАПЧ
  STROBER();  //IO UPDATE
  
  WriteReg(0x0020,0x0b); // (11(0x0B)*2+2)*40=960MHz
  WriteReg(0x0022,0x04); //  hi range PLL range
    
  WriteReg(0x01a6,0xc7); //FTW write
  WriteReg(0x01a7,0x4b);
  WriteReg(0x01a8,0x37);
  WriteReg(0x01a9,0x89);
  WriteReg(0x01aa,0x41);
  WriteReg(0x01ab,0x00);

  STROBER();  //IO UPDATE

  WriteReg(0x0010,0x60); //Full Enable

  STROBER();  //IO UPDATE

void Init_DDS()
{
//Вывод микросхемы из powerdown, установка CS, IO UPDATE неактивекн, ресет
DDS_PD0(); //DDS в активном режиме
DDSCS1(); //CS неактивен
IO_UPDATE_0(); //IO неактивен
RESET_1();
Init_Outputs(); //Инициализация портов в/в на выход
//Делаю ресет на 1мс
DELAYMS(1);
RESET_0(); //Ресет снял
//Прописываю 0й регистор так чтобы работало SDO

   DDSCS0();
   SPI_RX_Buffer.clear();
   SPI_TX_Buffer.clear();
  SPI_TX_Buffer.put(0x00);
  SPI_TX_Buffer.put(0x00);
  SPI_TX_Buffer.put(0x99);
  Transfer_SPI();
  DDSCS1();
}


void WriteReg(INT16U Adress,INT8U data)
{
INT8U Upper_Adress,Low_Adress;
Upper_Adress=Adress>>8;
Low_Adress=Adress&0xff;
DDSCS0();
SPI_RX_Buffer.clear();
SPI_TX_Buffer.clear();
SPI_TX_Buffer.put(Upper_Adress);
SPI_TX_Buffer.put(Low_Adress);
SPI_TX_Buffer.put(data);
Transfer_SPI();
DDSCS1();
}

void STROBER()
{
IO_UPDATE_0();
DELAYMS(5);
IO_UPDATE_1();
DELAYMS(5);
IO_UPDATE_0();
}

Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016