Работа с AD9834

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

Всем доброго здоровья!!!

Хочу написать программу обслуживания AD9834, у меня соит AVRstudio - 4.12, но не знаю как решить проблему расчета кода по формуле: Freg0 = (Fout / Fmclk) * 2^32.
Подскажите пожалуйста как написать код под это безобразие.
Реклама
akl
Друг Кота
Сообщения: 4476
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Здравствуйте. А почему нельзя требуемое значение Fout загрузить сразу со смещением на 4 байта, что эквивалентно умножению на 2^32. Затем сдвинуть вправо на 4 разряда. Получится Fout*2^28 ( для AD9834). Затем разделить на Fmclk и получить требуемое значение аккумулятора фазы.
http://radiokot.ru/circuit/digital/measure/22
Реклама
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

akl писал(а):Здравствуйте. А почему нельзя требуемое значение Fout загрузить сразу со смещением на 4 байта, что эквивалентно умножению на 2^32. Затем сдвинуть вправо на 4 разряда. Получится Fout*2^28 ( для AD9834). Затем разделить на Fmclk и получить требуемое значение аккумулятора фазы.
http://radiokot.ru/circuit/digital/measure/22
А можно посмотреть как выглядит все это на асме?
akl
Друг Кота
Сообщения: 4476
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Огласите Fmclk и Fout для примера.
Реклама
Эиком - электронные компоненты и радиодетали
Держит паяльник хвостом
Аватара пользователя
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула

Сообщение Neekeetos »

Вот как я делал на Си тоже для ддски (думаю на асм несложно переложить):

unsigned long a;
unsigned long b;
unsigned long res;

a = 400000000;
b = 1234567;
res = 0;

for (int i=0; i < 33; i++)
{
if (b > a) {b-=a; res++;}
res <<=1;b<< =1;
}
res++;res >>=1;

Это я написал побитное деление в столбик, соотв б делится на а и умножается на 2^32. Последняя строка это округление 0,5 в остатке.
PS Пардон муа за форматирование, форум такой код почему то переделывает в невидимые тэги.
Контактная информация:
Реклама
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

akl писал(а):Огласите Fmclk и Fout для примера.
Fmclk = 50 МГц, Fout = от 5 до 22 (МГц).
Реклама
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

Neekeetos писал(а):Вот как я делал на Си тоже для ддски (думаю на асм несложно переложить):

unsigned long a;
unsigned long b;
unsigned long res;

a = 400000000;
b = 1234567;
res = 0;

for (int i=0; i <33> a) {b-=a; res++;}
res <<=1;b<<1>>=1;

Это я написал побитное деление в столбик, соотв б делится на а и умножается на 2^32. Последняя строка это округление 0,5 в остатке.
PS Пардон муа за форматирование, форум такой код почему то переделывает в невидимые тэги.
На Си понятно, мне на асме не понятно.
akl
Друг Кота
Сообщения: 4476
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Здравствуйте. Вот что получилось на скорую руку. В архиве 2 примера работы AVR STUDIO 3.21
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

akl писал(а):Здравствуйте. Вот что получилось на скорую руку. В архиве 2 примера работы AVR STUDIO 3.21
Здравствуйте!
Спасибо, скачал, буду сейчас разбираться. Результат сообщу.
73!
Держит паяльник хвостом
Аватара пользователя
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула

Сообщение Neekeetos »

Мурзилка писал(а):На Си понятно, мне на асме не понятно.
А еще говорят лень - двигатель прогресса, нифига ведь не так :)
Контактная информация:
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

Neekeetos писал(а):
Мурзилка писал(а):На Си понятно, мне на асме не понятно.
А еще говорят лень - двигатель прогресса, нифига ведь не так :)
Судя по Вашему аватару, я понял, что лучше спросить нежели не зная лазить в потемках.
73!
Держит паяльник хвостом
Аватара пользователя
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула

Сообщение Neekeetos »

Мурзилка писал(а):Судя по Вашему аватару, я понял, что лучше спросить нежели не зная лазить в потемках.
По аватару встречают по уму провожают :)) . Я просто в вашей фразе про то что вам непонятно на ассемблере не уловил вопроса. Приведите код который у вас получился или хотя бы спросите что непонятно, я отвечу.
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 365
Зарегистрирован: Вт янв 22, 2008 23:13:41
Откуда: Калининград

Сообщение barby67 »

Мурзилка, хочу дать попутный совет, не пытайтесь выжать из DDSки частоту более 1/3 клока. Ничего путного не получится, в диапазоне до 1/3 можете получить любую частоту, а выше только ровно 1/2 клока.
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

Neekeetos писал(а):
Мурзилка писал(а):Судя по Вашему аватару, я понял, что лучше спросить нежели не зная лазить в потемках.
По аватару встречают по уму провожают :)) . Я просто в вашей фразе про то что вам непонятно на ассемблере не уловил вопроса. Приведите код который у вас получился или хотя бы спросите что непонятно, я отвечу.
"По аватару встречают, по уму проважают" - 100% Ваша правда, я просто отнесся с юмором.
По поводу кода - у меня еще ничего не получилось, в данный момент начал заниматься ассемблером в плотную, скачал книги, прочитал, попробовал на простых примерах, понял чтобы идти дальше нужно взять проект за основу, и потихоньку, шаг за шагом его строить, я не нашел понятного для меня варианта обработки математики которая мне нужна в данный момент, теперь он у меня есть - спасибо akl,
и Вам спасибо за помощь, будет проблемка я сразу напишу.
С уважением ко всем форумчанам, Павел.
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

barby67 писал(а):Мурзилка, хочу дать попутный совет, не пытайтесь выжать из DDSки частоту более 1/3 клока. Ничего путного не получится, в диапазоне до 1/3 можете получить любую частоту, а выше только ровно 1/2 клока.
Спасибо за совет, учту. Завтра займусь макетной платой и начну все отрабатывать на практике, результаты сообщу.

73!
Держит паяльник хвостом
Аватара пользователя
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула

Сообщение Neekeetos »

Мурзилка писал(а):По поводу кода - у меня еще ничего не получилось, в данный момент начал заниматься ассемблером в плотную, скачал книги, прочитал, попробовал на простых примерах, понял чтобы идти дальше нужно взять проект за основу, и потихоньку, шаг за шагом его строить
В принципе логично. Вопрос немного в стороне от программы. Если не секрет какой тактовый генератор будете использовать для питания ДДС, собираетесь ли компенсировать его температурную нестабильность (возможно программно)?
Контактная информация:
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

Neekeetos писал(а):
Мурзилка писал(а):По поводу кода - у меня еще ничего не получилось, в данный момент начал заниматься ассемблером в плотную, скачал книги, прочитал, попробовал на простых примерах, понял чтобы идти дальше нужно взять проект за основу, и потихоньку, шаг за шагом его строить
В принципе логично. Вопрос немного в стороне от программы. Если не секрет какой тактовый генератор будете использовать для питания ДДС, собираетесь ли компенсировать его температурную нестабильность (возможно программно)?
Опорник - обычный генератор в СМД корпусе. Никаких дополнительных мер принимать не буду, меня его нестабильность вполне устраивает.
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

Жаль время сегодня подходит ко сну, завтра обязательно буду на форуме.
Спасибо всем за участие, всего наилучшего, до завтра.
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

Сегодня как и говорил, платку нарисовал. Для ФНЧ хочу использовать сердечники от контуров импортных радио, из них вытащил серединку, она по форме - гонтелька диаметром 4мм. и высотой 5мм.. Схему включения DDS позаимствовал у 4Z5KY.
В приложенном файле схема и плата.
Вложения
may_AD9834.rar
(24.48 КБ) 390 скачиваний
Родился
Сообщения: 13
Зарегистрирован: Чт фев 04, 2010 11:30:40

Сообщение Мурзилка »

Повтор удалил.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»