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

Квадратурный сигнал из mega128

Доброго времяпровождения!

 

Есть mega128 (вопрос выбора МК отложим, просто валяется, решил на ней сделать), тактовая частота - 14,7456 МГц.

Нужно получить из нее квадратурный сигнал (2 меандра, сдвинутых относительно друг друга на 90 градусов) основной частотой 36кГц.

Необходимо предусмотреть отклонение от основной частоты 36кГц+-1кГц с дискретностью не более 100Гц (самый крайний случай, желательно не более 50Гц).

Частота задается с компа через uart, но это уже другая история, будем считать что у нас уже есть значение, которое лежит, например, в каком-нибудь регистре сравнения. Притом данную частоту нет необходимости подстраивать довольно часто, т.е. мы меняем ее к примеру раз в 30мин.

 

Вопрос - как оптимально реализовать данную задачку?

 

Варианты использовать другой МК не приветствуются, но могут будут рассмотрены.

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


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

Реализовать алгоритм NCO сможете? Это накапливающий сумматор, старший бит которого в Вашем случае выдается на выход.

Гуглить в сторону NCO, DDS, AD9834

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


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

Предлагаю использовать ГУН и подстраивать частоту с помощью ШИМ. Дешево и возможностей много.

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


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

Реализовать алгоритм NCO сможете? Это накапливающий сумматор, старший бит которого в Вашем случае выдается на выход.

Гуглить в сторону NCO, DDS, AD9834

 

Что-то я не догнал, можно по подробнее?

Если реализовывать именно алгоритм NCO в самом МК, то не хватает частоты, т.к. для квадратурного сигнала (как я представляю) нужен сигнал частотой в 4 раза выше основной, т.е. 144кГц, из которого мы потом без проблем получаем квадратурный сигнал 36кГц. Т.е. счетчик будет считать всего до 100, соответственно и дискретность будет довольно большая - что то типа 225 Гц.

Если ты предлагаешь добавить внешний NCO, то возникают проблемы с приобритением и возможно ценой (я далеко не из Москвы).

 

Вот на счет ГУН-а можно прикинуть, может кто пробовал - какие плюсы и минусы?

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


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

для квадратурного сигнала (как я представляю) нужен сигнал

Нет, все-таки к Гуглю вы так и не обратились.... Дискретность частоты nco зависит от разрядности сумматора.

Есть асемблерные реализации nco на атмега8 - люди получали около 100 кГц синусоиду - обсуждалось на forum.cqham.ru

 

Зайдите и сюда -

http://www.scienceprog.com/avr-dds-signal-...-asm-explained/

 

http://www.mikrocontroller.net/topic/70798

 

DDS - это NCO + таблица синусов + ЦАП. Вам надо только взять ДВА старших разряда сумматора. С них получите два квадратурных сигнала.

 

Работа с чем-либо еще в фоне будет вызыват помехи в выходном сигнале.

 

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

 

НУ вот готовая конструкция с применением таких технологий:

 

http://www.myplace.nu/avr/minidds/index.htm

 

can generate Sine-, Sawtooth-, Trangle- and Sqare-waves ranging from 0.07 Hz to about 200-300 kHz in 0.07 Hz steps (depending on your crystal).

 

 

Даже исходники есть.

http://www.myplace.nu/avr/minidds/minidds.asm

 

minidds_schematic.gif

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

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


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

... Т.е. счетчик будет считать всего до 100, соответственно и дискретность будет довольно большая - что то типа 225 Гц...

А Вы на 2-а разделить не забыли (инверсия по совпадению)? При Вашем кварце, дискретность будет выше требуемой даже при коэфф. счета близких к TOP.

Если устроит дискретность порядка 150-170 Гц (около 220 в регистре сравнения), ставьте кварц где-то под 16Мгц, и используйте таймеры Т0 и Т2 в режимах CTC. Плюсы - любая работа в фоне, а то несерьезно как-то все ресурсы меги128 под такую задачу отдавать... Либо посмотрите в сторону камней с PLL...

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


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

Либо посмотрите в сторону камней с PLL...

 

Коллега написал:

(я далеко не из Москвы).

Похоже, что камни с DDS, что камни с PLL одникаово тяжело по почте заказать.

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

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


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

DDS - это NCO + таблица синусов + ЦАП. Вам надо только взять ДВА старших разряда сумматора. С них получите два квадратурных сигнала.

Идея очень интересная, но пока не дошло почему там будет фазовый сдвиг в 90 градусов? Почему два старших разряда?

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


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

Идея очень интересная, но пока не дошло почему там будет фазовый сдвиг в 90 градусов? Почему два старших разряда?

 

Если Вас интересует меандр -

первый сигнал - старший бит сумматора.

второй сигнал - (старший байт сумматора + 0x40) - от этого старший бит.

Нарисуйте график - дойдёт.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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