Jump to content

    

Проблема с AD9528

Работаю с микросхемой AD9528.

На вход VXCO подаётся дифференциальный сигнал с Si570 (100 МГц).

На выходе OUT0 необходимо получить 1 ГГц. Но пока хочу 20 МГц.

Запускаю следующую последовательность:

 

0x000,        0x18,        1

0x000,        0x81,        1

0x100,        0x01,        1
0x102,        0x01,        1
0x104,        0x01,        1
0x108,        0x01,        1
0x201,        0xC0,        192
0x204,        0x03,        3

 

Перед каждой отправкой пускаю 

0x00F   0x01,  

Далее, для проверки, запускаю процедуру чтения по этим регистрам - всё правильно, то что было записано, то и читается - правильно.

На выходе ничего не меняется - какой-то дребезг идёт.

Кто-нибудь работал с данной микросхемой?

 

 

 

Share this post


Link to post
Share on other sites
32 минуты назад, Art55555 сказал:

Далее, для проверки, запускаю процедуру чтения по этим регистрам - всё правильно, то что было записано, то и читается - правильно.

На выходе ничего не меняется - какой-то дребезг идёт.

почитайте статусные регистры 0x505-0x509, может там будет видно чего чипу не хватает, входной не устраивает или pll не залочилась

Share this post


Link to post
Share on other sites

До настройки регистров (считываю):

505  -00

506-00

507-00

508-10

509-10

 

Видно, что PLL не LOCK, VCXO-incorrect.

После записанных регистров (указанных выше), я их прочитал, всё соответсвует.

Но контрольные регистры читаются так:

505  -00

506-00

507-00

508-30  (VCXO-correct - статус изменился)

509-10

 

PLL - не LOCKED!!

Share this post


Link to post
Share on other sites
2 часа назад, Art55555 сказал:

O-incorrect.

После записанных регистров (указанных выше), я их прочитал, всё соответсвует.

похоже с наскоку такой чип не окучить, там по-идее, надо соблюдать последовательность действий и не кидать "от балды", а дожидаться например смены флага готовности и подобного, типа pll нужно время чтобы выйти на готовность, делители/множители д.б. валидны для требуемых частот..

посмотрите вот тут https://wiki.analog.com/resources/tools-software/linux-drivers/iio-pll/ad9528 как это делает драйвер для линукса, может что полезного вычитаете, особенно в функции "int ad9528_setup"

Share this post


Link to post
Share on other sites
21 час назад, Art55555 сказал:

Работаю с микросхемой AD9528.

На вход VXCO подаётся дифференциальный сигнал с Si570 (100 МГц).

На выходе OUT0 необходимо получить 1 ГГц. Но пока хочу 20 МГц.

Запускаю следующую последовательность:

 

0x000,        0x18,        1

0x000,        0x81,        1

0x100,        0x01,        1
0x102,        0x01,        1
0x104,        0x01,        1
0x108,        0x01,        1
0x201,        0xC0,        192
0x204,        0x03,        3

  

Перед каждой отправкой пускаю 

0x00F   0x01,  

Далее, для проверки, запускаю процедуру чтения по этим регистрам - всё правильно, то что было записано, то и читается - правильно.

На выходе ничего не меняется - какой-то дребезг идёт.

Кто-нибудь работал с данной микросхемой?

 

 

 

Чудно все как-то...

 

Если у Вас референсная (опорная) частота подается не на вход REFA/REFB, а на вход VCXO, то зачем Вы тогда настраиваете PLL1?

 

Выходной делитель Вы не программируете, оставляя коэффициент деления по умолчанию (5), т.е. можно предположить, что 20МГц на выходе OUT0 Вы хотите получить напрямую из 100МГц VCXO входа, минуя PLL2, но кто будет тогда настраивать выходной коммутатор? Он по умолчанию настроен именно на выход PLL2. Да и собственно PLL2 Вы программируете как-то очень урезанно... 

 

И потом, что означает вот эта вот странная последовательность: "0x201, 0xC0, 192"? Вы пишете в два регистра подряд, в 0x201 и 0x202? Если нет, тогда что за число 192? В любом случае, записываемые значения вызывают сомнения...

 

Еще наверно надо не "Перед каждой отправкой пускаю 0x00F  0x01", а "После каждой отправки пускаю 0x00F  0x01"?

 

Вот эта последовательность тоже отдает загадочностью: 0x000, 0x18,  1;  0x000, 0x81, 1

 

Про то, что нужно выполнять калибровку PLL1/2 пока можно наверно даже и не упоминать...

 

И да, есть же ADIsimCLK...

Edited by Самурай

Share this post


Link to post
Share on other sites

Пока мне нужно получить вот такую систему, чуть позже с сисрефом разберусь.

В AD 9528Evalution Software конфигурирую то, что мне нужно.

 

813831500_2019-10-0416_56_56.thumb.png.39f0b467eb8f9705ac4268fb9bf07285.png

 

Далее, экспортирую регистры, которые по своим значениям отличаются от стандартных,   в STP-файл.

Вот они:

1183620381_2019-10-0416_57_54.thumb.png.e1114021c1bf78824dcb4e7f0bfa6ea2.png

 

Команду 0000 18 (адрес + данные) даю, чтобы видеть по SPI-ответ микросхемы.

Команду 0000 81 - софт ресет - всегда даю перед всеми настройками.

PLL по-прежнему не калибруется.

 

Если же после всех регистров проделать команды с калибровкой (203 регистр), то :

Регистр 508 выдаёт F0

Регистр 509 выдаёт 08

 

PLL2-LOCK  в нуле.

 

Да, видел не туда комутил (получилось "пробросить" 100 МГц-вый сигнал на 0-выход - здесь всё получилось)

 

 

 

 

 

 

 

Edited by Art55555

Share this post


Link to post
Share on other sites

Я не увидел, что Вы настраиваете charge pump и loop filter для PLL2... Неужели устраивают значения по умолчанию? Судя по тому, что PLL2-LOCK в нуле, есть сомнения...

 

 

22 часа назад, Art55555 сказал:

Команду 0000 18 (адрес + данные) даю, чтобы видеть по SPI-ответ микросхемы.

Команду 0000 81 - софт ресет - всегда даю перед всеми настройками.

Если Вы посмотрите свое первое сообщение, то увидите, что у Вас они приведены в обратном порядке, т.е. сначала Вы включаете SDO, а потом тут же его отключаете, давая команду сброса... Это то и вызвало некоторое недоумение... 

Share this post


Link to post
Share on other sites
On 10/5/2019 at 3:29 PM, Самурай said:

Я не увидел, что Вы настраиваете charge pump и loop filter для PLL2... Неужели устраивают значения по умолчанию? Судя по тому, что PLL2-LOCK в нуле, есть сомнения...

 

Дело в том, что значения для этих регистров я генерил в программе AD9528 Evolution Software.

Тем не менее, я поподавал разные значения на 201-209,  потом проводит процедуру VCO-калибрации. 

Результат пока такой же((

Share this post


Link to post
Share on other sites

Больше параметров

<registers>
Register (Hex),    Value (Hex),    Value (Dec)
0x100,        0x01,        1
0x102,        0x01,        1
0x104,        0x01,        1
0x108,        0x01,        1
0x200,        0x03,        3
0x201,        0x0A,        10
0x202,        0x83,        131
0x203,        0x02,        2
0x204,        0x04,        4
0x205,        0x6C,        108
0x208,        0x09,        9
0x302,        0x00,        0
</registers>
 

после этого VCO-calibration и считывание 508-509:

508 -11110000

509 -00001000

 

Share this post


Link to post
Share on other sites

Вот тут:

0x202, 0x83

лучше наверно поменять на:

0x202, 0x03,

т.к. иначе получается, что "lock detector powered down".

 

Еще пару вопросов:

1. Между выводами LF2_CAP (Pin 14) и LDO_VCO (Pin 15) стоит сейчас какая-нибудь емкость? Номинал?

2. Есть внешняя терминация по входам VCXO?

3. Какая реально частота подается на вход VCXO?

 

2 часа назад, Art55555 сказал:

Дело в том, что значения для этих регистров я генерил в программе AD9528 Evolution Software.

AD9528 Evaluation Software не рассчитывает параметры loop filter, а "генерит" только то, что сам пользователь ручками введет. Или не введет, а оставит по умолчанию. Но в любом случае, эти значение должны быть вразумительными, а не от фонаря... Вот параметры фильтра (с учетом внешнего конденсатора!) и charge pump для рекомендуемого значения loop bandwidth:

AD9528_PLL2_1.thumb.png.2860cd1c4dc335b25a1d68644e33eb72.png

 

Share this post


Link to post
Share on other sites

Добрый день!

0x202, 0x03 - сейчас буду проверять.

1.1397122572_2019-10-0810_21_49.thumb.png.793d58579b5177f46246000877537a77.png

 

2.581678065_2019-10-0810_23_10.thumb.png.7524b2c464c2a45b307ec810b85d5e01.png

 

3.Да, VXCO у нас Si570, реально выдаёт хороший 100 МГц, я проверял лично.

 

Тут вот ещё что есть:

https://analogdevices.telligenthosting.net/clock_and_timing/f/q-a/109939/ad9528-pll2-unlock/325607#325607

Share this post


Link to post
Share on other sites

Ура!

после изменения 202 на 03, все стало калиброваться. 
в конце всех настроек обязательно VCO-calibration. 
Самураю СПАСИБО!

 

Тема пока актуальна, дальше меня ждут упражнения с SysRef и JESD. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this