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

 
 
> Использовавшим DDS ad9959 или 9958, совсем запутался с программирование
MaFIA
сообщение Oct 4 2006, 11:41
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 30
Регистрация: 10-03-05
Из: Москва
Пользователь №: 3 213



Понимаю, что этот вопрос надо писать в разделе для чайников, но спрошу здесь. Есть проэкт на данной микросхеме (9959) все сигналы на нее приходят вроде правильно. Клок приходит, на ноге syncclock я, как и написано в glat вижу его, поделенный на 4. теперь пытаюсь ее запрограммировать. Подаю ресет(1мс) для сброса, CS вниз, IO update тоже вниз. передаю 5 байт ( первый байт - номер регистра (0х4) затем 4 байта настройка выходной частоты. затем поднимаю ioupdate и снимаю CS. Все. Но никакой реакции на выходе не получаю. Что я делаб не так??? Уже третий день сижу как дурак, а толку ноль. Любые, пусть даже самые нетривиальные мысли приветствуются.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Camelot
сообщение Oct 6 2006, 16:35
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 10-01-05
Пользователь №: 1 872



Забыл сказать еще одну вещь smile.gif сорри

после Init_DDS

Код

void DDS_SetStartFreq (unsigned int startfreq, unsigned int chanel)
{
if (!chanel) DDS_WriteData (DDS_CSR_REG, Chanel0_Select, 1);
else DDS_WriteData (DDS_CSR_REG, Chanel1_Select, 1);
DDS_WriteData (DDS_CTW0_REG, startfreq, 1);
}

void DDS_SetStopFreq (unsigned int stopfreq, unsigned int chanel)
{
if (!chanel) DDS_WriteData (DDS_CSR_REG, Chanel0_Select, 1);                                            
else DDS_WriteData (DDS_CSR_REG, Chanel1_Select, 1);
DDS_WriteData (DDS_CTW1_REG, stopfreq, 1);
}

void DDS_ScanPrepare (STData *td)
{
    
DDS_WriteData (DDS_CSR_REG, ChanelS_Select, 1);
DDS_WriteData (DDS_CFR_REG, Init_Function_Register3_0 | StopSweep, 1);
DDS_IO_Update ();

DDS_SetStartFreq (td->StartFreq0, 0);
DDS_SetStopFreq (td->StopFreq0, 0);

DDS_SetStartFreq (td->StartFreq1, 1);
DDS_SetStopFreq (td->StopFreq1, 1);

DDS_WriteData (DDS_CSR_REG, ChanelS_Select, 1);
DDS_WriteData (DDS_LSR_REG, td->RampRate, 1);
DDS_WriteData (DDS_RDW_REG, td->DeltaFreq, 1);
DDS_WriteData (DDS_CFR_REG, Init_Function_Register3_0 | StartSweep, 1);  
DDS_IO_Update (); //Здесь на выходе должны появится сигналы
}


Это я дал пример для моего случая, но порядок записи в регистры лучше придерживаться.
И еще кой какие замечания:

1. IOUPDATE не надо делать после каждой записи в регистр
Цитата
Each set of communication cycles does not require an
I/O_UPDATE to be issued. The I/O_UPDATE transfers data
from the I/O port buffer to active registers. The I/O_UPDATE
can be sent for each communication cycle or can be sent when
all serial operations are complete. However, data is not active
until an I/O_UPDATE is sent, with the exception of the channel
enable bits in the Channel Select Register (CSR). These bits do
not require an I/O_UPDATE to be enabled.


2. Записали Вы к примеру в DDS_CSR_REG значение F2, пробовали прочитать обратно? (какой результат)

3. Если не читается (п.2), проверте SDIO(0-3) ноги, в моем случае (AD9958) SDIO_3 должно быть на земле, иначе SPI не работает (я о режиме когда SDIO_2=DO, SDIO_0=DI)

Успехов!!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MaFIA   Использовавшим DDS ad9959 или 9958   Oct 4 2006, 11:41
- - Миша   1) После Reset обнуляются ВСЕ регистры, в том числ...   Oct 4 2006, 13:23
|- - MaFIA   Цитата(Миша @ Oct 4 2006, 17:23) 1) После...   Oct 5 2006, 11:52
- - Миша   Посмотрите настройки Control Function Register 1 (...   Oct 5 2006, 14:18
|- - MaFIA   Цитата(Миша @ Oct 5 2006, 18:18) Посмотри...   Oct 5 2006, 14:41
- - Миша   Путаю, видимо - у меня 9951. Код ещё не написал, в...   Oct 6 2006, 06:08
|- - khach   Тут есть исходники на AD9954, но для PIChttp://www...   Oct 6 2006, 06:54
- - MaFIA   2Миша - эта приблуда от analoga слов нет одни эмоц...   Oct 6 2006, 08:18
- - Camelot   Может поможет этот код, здесь описана последовател...   Oct 6 2006, 13:27
- - MaFIA   Я так понял, что это под 9958. не помогло. может я...   Oct 6 2006, 14:46
- - MaFIA   из всех регистров читается то, что я туда пишу. Ес...   Oct 9 2006, 13:10
- - Camelot   В моем случае ДДСка программируется на линейный св...   Oct 9 2006, 15:40
- - MaFIA   ВСЕ!!! победил. Дело было не в бобине ...   Oct 11 2006, 15:35


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

 


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


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