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

 
 
> AD9913, ГЕНЕРАТОР
gladkih
сообщение Jun 25 2011, 17:46
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 18-11-06
Пользователь №: 22 474



Здравствуйте форумчане. Обращаюсь с вопросами к вам. Вот моя проблема. Собрал схему ПИК24ФЙ64ЖА004+АД9913. Ну соответственно с обвязкой. Обвязку АД брал брал из AD9913 EVALUATION BOARD. Так вот зашил прогу в контроллер включил внешний кварцевый резонатор. Глянул на 9-ю ногу микрухи а там непонятно что - такое впечатление что просто мусор. Глянул на кварц а там тоже похоже что он не завелся. По умолчанию в АД стоит DIRECT-DRIVEN REF_CLK. Похоже что заливки данных в АД не идет. Взял осцилографом и проверил сигналы ДАТА, КЛОК, ЦС ИНПУТ ОУТПУТ АПДЕЙТ все есть гляньте на заливку данных может что не так делаю
CODE

void AD9954_WRITE (unsigned int64 DATA,unsigned INT8 ADRES)
{


SWITCH (ADRES)
{
CASE 0:CASE 3:CASE 2:CASE 8:
{
LEN=4;BREAK;
}
CASE 1:CASE 4:CASE 5:
{
LEN=2;BREAK;
}
CASE 9:CASE 10:CASE 11:CASE 12:CASE 13:CASE 14:CASE 15:CASE 16:
{
LEN=6;BREAK;
}
CASE 6:CASE 7:
{
LEN=8;BREAK;
}
}

OUTPUT_LOW(IO_CS);

for(data_count=8; data_count!=0; --data_count)
{
//DELAY_mS(100);
output_LOW(IO_SYNC);//DELAY_mS(100);
if (bit_test(ADRES,data_count-1))
{output_HIGH(IO_SDIO);}
else
{output_LOW(IO_SDIO);}
//DELAY_mS(100);
output_HIGH(IO_SYNC);
}
//DELAY_mS(100);
output_LOW(IO_SYNC);//DELAY_mS(100);
output_LOW(IO_SDIO);


DELAY_mS(1);

WHILE(LEN!=0)
{

for(data_count=LEN*8; data_count>(LEN-1)*8; --data_count)
{ //DELAY_mS(100);
output_LOW(IO_SYNC);//DELAY_mS(100);
if (bit_test(DATA,data_count-1)==1)
{output_HIGH(IO_SDIO);}
else {output_LOW(IO_SDIO);}
//DELAY_mS(100);
output_HIGH(IO_SYNC);
}
//DELAY_mS(100);
output_LOW(IO_SYNC);
//DELAY_mS(100);
output_LOW(IO_SDIO);


--LEN;
}
//DELAY_mS(100);
OUTPUT_HIGH(IO_CS);

OUTPUT_HIGH(IO_UPDATE);
DELAY_mS(1);
OUTPUT_LOW(IO_UPDATE);

Осцилографом смотрел все сигналы соответствуют даташиту. Ниже заливка данных в АД
CODE

init_AD9913();

AD9913_RESET();

AD9954_WRITE (0x08000000,DDS_AD9913_CFR1);
AD9954_WRITE (0x027a,DDS_AD9913_CFR2);
AD9954_WRITE (0x007F00F,DDS_AD9913_DAC_Control_Register );
AD9954_WRITE (0x008624D0,DDS_AD9913_FTW);
DELAY_MS(2);


И еще на 9-й ноге должен быть какой сигнал - частота кварца или частота кварца пропущенная через умножитель и делитель?


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 19:01
Рейтинг@Mail.ru


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