-
03.03.2006, 15:37 #1
помогите изучить Ad9854
пытаюсь по документации на Ad9854 изучить 5 программируемых режимов работы данного частотного синхронизатора и для начала возник такой вопрос:
как правильно закодировать значение фазы? выделено под это дело 16 бит, причем 14 и 15 бит не используется, т.е. у меня осталось 14 разрядов...
минимально значение фазы 0, максимальное 360? если так то, чтобы закодировать 360 градусов, в принципе, необходимо только 9 разрядов, т.е. 360=101101000 или все же можно вводить не только целое значение, а например 45,5 градусов?
-
03.03.2006, 17:14 #2
- Регистрация
- 14.02.2005
- Адрес
- Санкт-Петербург
- Возраст
- 60
- Сообщений
- 484
- Поблагодарили
- 43
- Поблагодарил
- 11
посмотрите внимательней на структурную схему...
младший значащий бит - это 1/2**14 от полного оборота.
то есть, 270 градусов - это код 11000000000000.
кроме того, советую обратить внимание - сдвиг фаз между синусным и косинусным выходами не управляется.
если надо делать выход двух сигналов с программируемым сдвигом - надо ставить две Ad9852 или Ad9854 в засинхронизированном включении и двигать фазу одного из них.
-
03.03.2006, 17:43 #3
спасибо, теперь стало ясно по какой формуле необходимо кодировать значение фазы
т.е. будет так: если необходимо закодировать 270 градусов, то необходимо (270/360)*16384=12288 перевожу в 2 с/с и получаю 11000000000000
где 16384 - это 2 в 14-ой степени (2**14)
ещё все же хотелось бы уточнить: если значение вводится нецелое, например 45,5 то необходимо округлить значение? {(45,5/360)*16384}
-
03.03.2006, 19:54 #4
- Регистрация
- 14.02.2005
- Адрес
- Санкт-Петербург
- Возраст
- 60
- Сообщений
- 484
- Поблагодарили
- 43
- Поблагодарил
- 11
Обычно такие вычисления делаются целочисленной арифметикой.
Если сдвиг фаз задается в целых градусах
code = deltafi * 16384 / 360
Так Вам надо с точностью до одной десятой градуса? Ничего округлять не надо!
Есди сдвиг фаз задается в десятых долях градуса - в Вашем случае 455 -
code = deltafi * 16384 / 3600
Естественно, надо следить за отсутствием переполнения промежуточного результата. Например, в Win32 API есть функция MulDiv. Для микропроцессоров, где приходится писать такую арифметику самому, обычно алгоритмы умножения и деления согласовываются по результатам - то что получилось после умножения - результат размером как оба сомножителя - можно прямо подать на деление как делимое.
Здесь принцип такой же, как и с расчетом FTW. Если захотите частоту с точностью до мегагерца расчитать - берем формулу:
FTW = freq * (2 ^ 48) / 200 - это для 200 мегагерц тактовой.
Если с точностью до герца -
FTW = freq * (2 ^ 48) / 200000000 - тоже для 200 мегагерц тактовой.
Естественно, частота на выходе и тактовая частота меряются в одинаковых единицах.
Да, поделюсь трюком - когда достаточно точности 32-битного FTW, расчеты делаем с 2^32, а при выдаче FTW младшие 16 бит пишем нулями. По идее, должно повышать качество спектра.Последний раз редактировалось Геннадий Завидовский; 03.03.2006 в 20:02.
-
06.03.2006, 18:31 #5
Геннадий, простите за назойливость, но формулу
Сообщение от Геннадий Завидовский
вообще, я мало что понимаю в этом AD9854 и пытаюсь разобраться в принципах его работы, что как кодировать, чтобы написать приложение,с помощью которого в зависимости от выбранного режима пользователь будет вводить те или иные данные... но для меня это все темный лес
и я Вам буду очень признательна, если Вы мне поможите с этим...
-
06.03.2006, 19:05 #6
- Регистрация
- 14.02.2005
- Адрес
- Санкт-Петербург
- Возраст
- 60
- Сообщений
- 484
- Поблагодарили
- 43
- Поблагодарил
- 11
Извините, что сразу углубился в дебри - по вопросу, относящемуся к одному из блоков я подумал, что с остальным у Вас все хорошо...
Ну если пользователь... тогда, введенные пользователем данные преобразовать к тому формату что надо... хоть с плавающей точкой, хоть как - и выдавать в микросхему. Для чего программа пишется - для аналог девайсовской эвалюэйшин боард? Дайте адрес, вышлю исходники одной из многочисленных программ для управления DDS, которые мне пришлось написать...
Навыки программирования пользовательских приложений есть? под какой операционкой работать будет? Что за аппаратура? Учебная работа?Последний раз редактировалось Геннадий Завидовский; 06.03.2006 в 19:31.
-
06.03.2006, 19:22 #7
Геннадий, шлите информацию на SunnyVa@Rambler.ru... или свяжитесь со мной по icq...
я пытаюсь со всем этим разобраться для дипломной работы: т.е. моя задача написать приложение, с помощью которого можно будет управлять AD9854... С самим программированием этого пользовательского приложения, думаю у меня проблем не будет - моя сейчас главная проблема - это изучить AD9854... (Интерфейс будет написан с использованием Measurement Studio компании National Instruments)
-
06.03.2006, 23:47 #8
- Регистрация
- 14.02.2005
- Адрес
- Санкт-Петербург
- Возраст
- 60
- Сообщений
- 484
- Поблагодарили
- 43
- Поблагодарил
- 11
Письмо вернулось... рамблеру не нравится мой рабочий адрес...
----- Transcript of session follows -----
... while talking to imx1.rambler.ru.:
>>> DATA
<<< 450 <Genadi.Zawidowski@xxxxxxxxxxxxxx.com>: Sender address rejected: unverified address: host mail1.xxxxxxxxxxxxxxxxxxxx.com[62.181.55.66] said: 451 4.7.1 Greylisting in action, please come back in 00:05:00 (in reply to RCPT TO command) <SunnyVa@Rambler.ru>... Deferred: 450 <Genadi.Zawidowski@XXXXXXXXXX.com>: Sender address rejected: unverified address: host mail1.XXXXXXXXXXX.com[62.181.55.66] said: 451 4.7.1 Greylisting in action, please come back in 00:05:00 (in reply to RCPT TO command)
Warning: message still undelivered after 4 hours
Will keep trying until message is 2 weeks old
-
07.03.2006, 08:06 #9
Геннадий, попробуйте выслать на адрес SunnyVa@probkistars.com или SunnyVa@mylen.ru
-
07.03.2006, 08:09 #10
нет, мне пришло от Вас письмо... спасибо огромное... сегодня вечером обязательно все просмотрю...
Сообщение от SunnyVa
|
Социальные закладки