Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 17.09.2012, 11:12  
Nadmitran
Прохожий
 
Регистрация: 25.09.2009
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Nadmitran на пути к лучшему
По умолчанию Re: PIC+AD9833

Не могу понять как задавать частоту с кратностью 0.1Гц (по данным она это должна уметь).
Когда задаю частоту кратную 1Гц, при расчете идет округление результата:
Freq / MCLK/2^28
(пример при MCLK 20МГц
0,1Гц=1,34217728
0,3Гц=4,02653184) .
Как с учетом округления можно получить нужную частоту, или AD сама работает с учетом округления
Реклама:
Nadmitran вне форума  
Непрочитано 17.09.2012, 11:21  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: PIC+AD9833

Используйте 64-битную арифметику. Сама технология построения синтезатора прямого синтеза дает возможность обеспечить шаг по частоте равный частному от деления тактовой на емкость сумматора. В Вашем случае шаг перестройки частоты будет равен 20000000/268435456 ~ 0,0745Гц, т.е погрешность установки для 0,1Гц будет примерно 0,025Гц - т.е довольно высокая. Если Вам нужно иметь более высокую точность на низких частотах - уменьшайте тактовую.
__________________
misterdi<@>i.ua

Последний раз редактировалось MisterDi; 17.09.2012 в 11:45.
MisterDi вне форума  
Непрочитано 17.09.2012, 11:51  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: PIC+AD9833

Сообщение от Nadmitran Посмотреть сообщение
Не могу понять как задавать частоту с кратностью 0.1Гц (по данным она это должна уметь).
Когда задаю частоту кратную 1Гц, при расчете идет округление результата:
Freq / MCLK/2^28
(пример при MCLK 20МГц
0,1Гц=1,34217728
0,3Гц=4,02653184) .
Как с учетом округления можно получить нужную частоту, или AD сама работает с учетом округления
AD ничего не округляет. Она принимает по последовательному интерфейсу FTW в hex-формате.
Есть старый, но неплохой способо вычисления слова управления частотой.
Заранее вычисляете и храните в памяти 4-х байтовые значения констант для весов:
FTW1 = (0xHHHHHHHH) для 0.1 Гц
FTW2 = (0xHHHHHHHH) для 1 Гц
FTW3 = (0xHHHHHHHH) для 10 Гц
FTW4 = (0xHHHHHHHH) для 100 Гц
FTW5 = (0xHHHHHHHH) для 1000 Гц
FTW6 = (0xHHHHHHHH) для 10000 Гц
FTW7 = (0xHHHHHHHH) для 100000 Гц
FTW8 = (0xHHHHHHHH) для 1000000 Гц
Всего 32 байта (8 слов по 4 байта).
Далее умножение и сложение выводят на полное слово управления.
Допустим надо установить частоту 5175243.4 Гц.
FTW = FTW1*4+FTW2*3+FTW3*4+FTW4*2+FTW5*5+FTW6*7+FTW7*1+F TW8*5
Полученное 4-х байтное слово задвигаете в синтезатор.
Может и не очень эффективный способ, но точность гарантирована. Главное, точно определить весовые значения констант, т.к. в каждом весе ошибка накапливается от 1 до 9.
Легко реализуется на любом языке, т.к. умножение можно произвести простыми циклами с ведущим числом по весу разряда.
Ну это по вкусу...
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 17.09.2012, 12:01  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: PIC+AD9833

Цитата:
Может и не очень эффективный способ, но точность гарантирована.
Вынужден не согласится. Способ весьма эффективный, но не точный. Т.к. ошибки каждого разряда складываются, при этом ошибки установки частоты весьма не равномерно распределены по шкале. Гарантированную точность (+/- шаг дискртизации), дает только полный расчет с умножением/делением удвоенного количества разрядов сумматора.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 17.09.2012, 12:12  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: PIC+AD9833

Сообщение от MisterDi Посмотреть сообщение
Вынужден не согласится. Способ весьма эффективный, но не точный. Т.к. ошибки каждого разряда складываются, при этом ошибки установки частоты весьма не равномерно распределены по шкале. Гарантированную точность (+/- шаг дискртизации), дает только полный расчет с умножением/делением удвоенного количества разрядов сумматора.
Я на это указал между строк. Основной фактор - требования по точности. Для минимальных требований этот способ подходит. Для абсолютных, безусловно нет. Кто ж спорит.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 17.09.2012, 12:20  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: PIC+AD9833

(fMCLK/2^28 ) × FREQREG.
fMCKL = частота референского тактового сигнала. 2^28=268'435'456.
Пример такой:
(26'843'545,6 Гц / 268435456) * 1000000 = 100'000 Гц
(26'843'545,6 Гц / 268435456) * 1000001 = 100'000,1 Гц
(26'843'545,6 Гц / 268435456) * 1000002 = 100'000,2 Гц
Значение регистра привел в десятичном формате.
Частота тактового генератора должна быть очень точной, иначе получится погрешность.
Правда, максимальная частота мастер-клока определена в 25 МГц, а нам требуется точно 26,8435456 МГц. Но если в 10 раз ее снизить, тогда точность будет в 10 раз выше.

Главное, если хочешь получить сетку частот с точными-точными-преточными значениями в 0,1 Гц и без каких-либо округлений, тогда придется соблюдать точную-преточную мастер-частоту

Для частоты мастер-клока 2,5 МГц коэффициент частоты
составит
(2500000 / 2^28 ) = 0,0093132

Чтобы получить частоту 1000 Гц на выходе, значение регистра составит
1000 / 0,0093132 = 107345 (в десятичном формате!) или 0х1A351.
Точное значение частоты на выходе = 1000,007614 Гц

Аналогично, чтобы получить частоту 1000,1 Гц, нужно
1000,1 / 0,0093132 = 107385 (в десятичном формате) или 0x1A379.
Точное значение частоты на выходе = 1000,1007468 Гц

Таким образом, для изменения частоты на 0,1 Гц нужно изменять значение регистра на 40 (в десятичном формате) или 0x28 в гексаформате.

Принцип понятен теперь??

Последний раз редактировалось Алекс Василич; 17.09.2012 в 13:31.
Алекс Василич вне форума  
Непрочитано 17.09.2012, 15:51  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: PIC+AD9833

Все бы хорошо, но автор не уточнил требуемую точность. А мы на подбор уже три варианта предложили... ХЗ что его удовлетворит и чего добиваться. Если это метрология - боюсь без термостатированной опоры не обойтись. Иначе точно рассчитанная погрешность при требуемой дискретности уйдет в никуда при плавании "по погоде"...
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mega324 + ad9833 dds = проблема code-by Микроконтроллеры, АЦП, память и т.д 4 26.11.2009 14:45


Часовой пояс GMT +4, время: 00:34.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot