Перейти к содержанию
    

Кто работал с AD9953 не могу записать в регистры данные

AD9953

подключена к SPI stm32. Интерфейс работает корректно. Попытка записи в регистры ни к чему не приводит.

При чтении так же всегда читаю 0. Подключена по 3х проводной схеме....

Где грабли? Буду признателен за совет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

AD9953

подключена к SPI stm32. Интерфейс работает корректно. Попытка записи в регистры ни к чему не приводит.

При чтении так же всегда читаю 0. Подключена по 3х проводной схеме....

Где грабли? Буду признателен за совет.

 

Схема?

ad9953 reset?

Пробовали на других SPI девайсах?

spi mode3?

 

 

miso, MOSI, SCLK, CS - четыре сигнала для получения данных с AD9953

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Схема?

ad9953 reset?

Пробовали на других SPI девайсах?

spi mode3?

 

 

miso, MOSI, SCLK, CS - четыре сигнала для получения данных с AD9953

 

ДА, все четыре сигнала и использую. На этой же плате стоят ацп подключенные к этому же spi они отзываются корректно.

Что я делаю.

Формирую высокий уровень на входе сброса, затем опускаю сброс, опускаю чип селект, вывожу 0х00 ( инструкция записи в регистр 0), вывожу 0х00, 0х02 ( включаю трех проводный режим SPI поднимая бит SDIO input only), 0х00, 0Х00, поднимаю чип селект.

После этого опускаю чип селект, вывожу 0х01 ( инструкция записи в первый регистр), вывожу 0х00, 0х02 ( включаю crystal out), 0x00,0x00, поднимаю чип селект.

Что я ожидаю... Во первых микросхема должна перейти в трех проводной режим обмена, те одна линия на ввод данных одна на вывод и клок.

Во вторых на выходе crystal out я должен увидеть сигнал тактового генератора, я его не вижу, хотя на самих лапах кварца ( я использую кварц 24Мгц) я вижу осциляцию.. Попытка прочитать два упомянутых выше регистра дает нули....

Вывод PWRDWNCTL у меня на земле, те по умолчанию все включено......

Питание и все прочее по даташиту и схеме кита от аналог девайс, все многократно проверил....

 

 

Схема?

ad9953 reset?

Пробовали на других SPI девайсах?

spi mode3?

 

 

miso, MOSI, SCLK, CS - четыре сигнала для получения данных с AD9953

 

 

Схема включения

DDS.pdf

Изменено пользователем beeper

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С AD9953 дела не имела, но у большнства прочих АЦП чипселект служит еще и для синхронизации. Например, если я скармливаю ему команду, состоящую из нескольких байт (например, команды установки режимов), а потом вдруг "забыла" сколько байт успела передать, то дернув чипселектом туда-сюда, могу начать передачу сызнова, т.к. после этого АЦП забывает незавершенные процедуры.

 

Это же механизм обычно используется при чтении посылок из АЦП, содержаних более одного байта. Ведь если хотя бы один байт пропустишь, старшие байты числа перепутаются с младшими. Что бы такого не случилось, полезно делать встряску чипселектом с начала приема каждого значения. Обычно это реализуется так - CS всегда держат выключенным, а включает только на время чтения посылки. Когда автоматически получается, что АЦП выдаст посылку сначала, и байты от прошлых посылок в нем не застрянут.

 

В отношении "программирования" АЦП работает тот же механизм. А потому никак нельзя дёргать чипселектом в процесе одного и того же акта приема-передачи. Например, если это не перидический режим выдачи, а режим получения одного значения по запросу, то между подачей запроса и чтением ответа чипселект отключаться не должен! А то получим одни нули :).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте сделать I/O Update после записи в регистр. Для этого надо сформировать положительный перепад на 1 ноге AD9953.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С AD9953 дела не имела, но у большнства прочих АЦП чипселект служит еще и для синхронизации. Например, если я скармливаю ему команду, состоящую из нескольких байт (например, команды установки режимов), а потом вдруг "забыла" сколько байт успела передать, то дернув чипселектом туда-сюда, могу начать передачу сызнова, т.к. после этого АЦП забывает незавершенные процедуры.

 

Это же механизм обычно используется при чтении посылок из АЦП, содержаних более одного байта. Ведь если хотя бы один байт пропустишь, старшие байты числа перепутаются с младшими. Что бы такого не случилось, полезно делать встряску чипселектом с начала приема каждого значения. Обычно это реализуется так - CS всегда держат выключенным, а включает только на время чтения посылки. Когда автоматически получается, что АЦП выдаст посылку сначала, и байты от прошлых посылок в нем не застрянут.

 

В отношении "программирования" АЦП работает тот же механизм. А потому никак нельзя дёргать чипселектом в процесе одного и того же акта приема-передачи. Например, если это не перидический режим выдачи, а режим получения одного значения по запросу, то между подачей запроса и чтением ответа чипселект отключаться не должен! А то получим одни нули :).

 

Да я не дергаю CS. Я его опускаю перед передачей и поднимаю после окончания передачи.... передача состоит из байта инструкции и трех или четырех байт значений регистра....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте сделать I/O Update после записи в регистр. Для этого надо сформировать положительный перепад на 1 ноге AD9953.

Делаю, не помогает.

Вообще на сколько я разобрался, сигнал I/O Update нужен для синхронизации... Те, для того чтобы регистры приняли его значение, совсем не обязательно формировать фронт на нем.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще на сколько я разобрался, сигнал I/O Update нужен для синхронизации... Те, для того чтобы регистры приняли его значение, совсем не обязательно формировать фронт на нем.....

Там два уровня регистров, в регистры первого уровня информация записывается и передается в регистры второго уровня по I/O Update для исполнения. Какой уровень регистров считывается, я не помню.

Формирую высокий уровень на входе сброса, затем опускаю сброс, опускаю чип селект, вывожу 0х00 ( инструкция записи в регистр 0), вывожу 0х00, 0х02 ( включаю трех проводный режим SPI поднимая бит SDIO input only), 0х00, 0Х00, поднимаю чип селект.

После этого опускаю чип селект, вывожу 0х01 ( инструкция записи в первый регистр), вывожу 0х00, 0х02 ( включаю crystal out), 0x00,0x00, поднимаю чип селект.

Здесь есть как минимиум две ошибки:

1. Запись по умолчанию - MSB (см. стр. 27 datasheet), т.е. чтобы включить SDIO input only надо записывать 0x00,0x00,0x00,0x02,0x00.

2. Регистр 0x01 24-битный, в него можно записать только 3 байта. В Вашем случае последовательность должна быть 0x01,0x00,0x02,0x00

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там два уровня регистров, в регистры первого уровня информация записывается и передается в регистры второго уровня по I/O Update для исполнения. Какой уровень регистров считывается, я не помню.

 

Здесь есть как минимиум две ошибки:

1. Запись по умолчанию - MSB (см. стр. 27 datasheet), т.е. чтобы включить SDIO input only надо записывать 0x00,0x00,0x00,0x02,0x00.

2. Регистр 0x01 24-битный, в него можно записать только 3 байта. В Вашем случае последовательность должна быть 0x01,0x00,0x02,0x00

 

Вы правы, последовательность как вы указали( я просто из кода переписал не так).

Без I\O update не принимает к исполнению, так же правы....

Вообще нашел проблему... плата четерехслойная на Радаре сделанная)))) питание интерфейса то было то не было.....

Спасибо всем кто откликнулся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...